Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.robertoc.test;
- import android.content.Context;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.ImageButton;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.firebase.ui.database.FirebaseRecyclerAdapter;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.Query;
- import com.google.firebase.database.ValueEventListener;
- import com.squareup.picasso.Callback;
- import com.squareup.picasso.NetworkPolicy;
- import com.squareup.picasso.Picasso;
- public class MainActivity extends AppCompatActivity {
- private RecyclerView mLista_Blog;
- private DatabaseReference mDatabase;
- private FirebaseAuth mAuth;
- private FirebaseAuth.AuthStateListener mAuthListener;
- private DatabaseReference mDatabaseUsuarios;
- private boolean mProcessLike = false;
- private DatabaseReference mDatabaseLike;
- private DatabaseReference mDatabaseCurrentUSer;
- private Query mQueryCurrentUser;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mAuth = FirebaseAuth.getInstance();
- mAuthListener = new FirebaseAuth.AuthStateListener() {
- @Override
- public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
- if (firebaseAuth.getCurrentUser() == null){
- Intent loginIntent = new Intent(MainActivity.this, Entrar.class);
- loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(loginIntent);
- }
- }};
- mDatabase = FirebaseDatabase.getInstance().getReference().child("Blog");
- mDatabaseUsuarios = FirebaseDatabase.getInstance().getReference().child("Usuarios");
- mDatabaseLike = FirebaseDatabase.getInstance().getReference().child("Likes");
- String currentUserId = mAuth.getCurrentUser().getUid();
- mDatabaseCurrentUSer = FirebaseDatabase.getInstance().getReference().child("Blog");
- mQueryCurrentUser = mDatabaseCurrentUSer.orderByChild("uid").equalTo(currentUserId);
- mDatabase.keepSynced(true);
- mDatabaseLike.keepSynced(true);
- mDatabaseUsuarios.keepSynced(true);
- mLista_Blog = (RecyclerView) findViewById(R.id.lista_blog);
- LinearLayoutManager layoutManager = new LinearLayoutManager(this);
- layoutManager.setReverseLayout(true);
- layoutManager.setStackFromEnd(true);
- mLista_Blog.setHasFixedSize(true);
- mLista_Blog.setLayoutManager(new LinearLayoutManager(this));
- checkUserExist();
- }
- @Override
- protected void onStart(){
- super.onStart();
- mAuth.addAuthStateListener(mAuthListener);
- FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(
- Blog.class,
- R.layout.blog_row,
- BlogViewHolder.class,
- mQueryCurrentUser
- ) {
- @Override
- protected void populateViewHolder(BlogViewHolder viewHolder, Blog model,final int position) {
- final String post_key = getRef(position).getKey();
- viewHolder.setTitulo(model.getTitulo());
- viewHolder.setConteudo(model.getConteudo());
- viewHolder.setImagem(getApplicationContext(),model.getImagem());
- viewHolder.setUsername(model.getUsername());
- viewHolder.setmLikeBtn(post_key);
- viewHolder.mView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //Toast.makeText(MainActivity.this, post_key, Toast.LENGTH_LONG).show();
- Intent singleBlogIntent = new Intent(MainActivity.this, BlogSingleActivity.class);
- singleBlogIntent.putExtra("blog_id", post_key );
- startActivity(singleBlogIntent);
- }
- });
- viewHolder.mLikeBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- mProcessLike = true;
- mDatabaseLike.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (mProcessLike ){
- if(dataSnapshot.child(post_key).hasChild(mAuth.getCurrentUser().getUid())){
- mDatabaseLike.child(post_key).child(mAuth.getCurrentUser().getUid()).removeValue();
- mProcessLike = false;
- } else {
- mDatabaseLike.child(post_key).child(mAuth.getCurrentUser().getUid()).setValue("RandomValue");
- mProcessLike = false;
- }
- }}
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- });
- }
- };
- mLista_Blog.setAdapter(firebaseRecyclerAdapter);
- }
- private void checkUserExist() {
- if(mAuth.getCurrentUser()!= null ){
- final String user_id = mAuth.getCurrentUser().getUid();
- mDatabaseUsuarios.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if(!dataSnapshot.hasChild(user_id)) {
- Intent mainIntent = new Intent(MainActivity.this, Entrar.class);
- mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(mainIntent);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }});}}
- public static class BlogViewHolder extends RecyclerView.ViewHolder{
- View mView;
- ImageButton mLikeBtn;
- DatabaseReference mDatabaseLike;
- FirebaseAuth mAuth;
- public BlogViewHolder(View itemView) {
- super(itemView);
- mView = itemView;
- mLikeBtn = (ImageButton) mView.findViewById(R.id.like_Btm);
- mDatabaseLike = FirebaseDatabase.getInstance().getReference().child("Likes");
- mAuth = FirebaseAuth.getInstance();
- mDatabaseLike.keepSynced(true);
- }
- public void setmLikeBtn(final String post_key){
- mDatabaseLike.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if(dataSnapshot.child(post_key).hasChild(mAuth.getCurrentUser().getUid())){
- mLikeBtn.setImageResource(R.drawable.ic_thumb_up_blacka_24dp);
- } else {
- mLikeBtn.setImageResource(R.drawable.ic_thumb_up_black_24dp);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- public void setTitulo(String titulo){
- TextView post_titulo = (TextView) mView.findViewById(R.id.blogSingleTitle);
- post_titulo.setText(titulo);
- }
- public void setConteudo (String conteudo){
- TextView setConteudo = (TextView) mView.findViewById(R.id.post_conteudo);
- setConteudo.setText(conteudo);
- }
- private void setUsername(String username){
- TextView post_Username = (TextView) mView.findViewById(R.id.post_username);
- post_Username.setText(username);
- }
- public void setImagem(final Context ctx, final String imagem){
- final ImageView post_imagem = (ImageView) mView.findViewById(R.id.blogSingliImage);
- //Picasso.with(ctx).load(imagem).into(post_imagem);
- Picasso.with(ctx).load(imagem).networkPolicy(NetworkPolicy.OFFLINE).into(post_imagem, new Callback() {
- @Override
- public void onSuccess() {
- }
- @Override
- public void onError() {
- Picasso.with(ctx).load(imagem).into(post_imagem);
- }
- });
- }
- }
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.meu_menu, menu);
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if (item.getItemId() == R.id.barra_de_acao){
- startActivity(new Intent(MainActivity.this, Postar.class));
- }
- if (item.getItemId() == R.id.action_sair) {
- sair();
- }
- return super.onOptionsItemSelected(item);
- }
- private void sair() {
- mAuth.signOut();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement