joris

UsersActivity.java

Jul 31st, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.13 KB | None | 0 0
  1. package com.bertho.chat;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.support.v7.widget.LinearLayoutManager;
  9. import android.support.v7.widget.RecyclerView;
  10. import android.support.v7.widget.Toolbar;
  11. import android.view.View;
  12. import android.widget.TextView;
  13.  
  14. import com.firebase.ui.database.FirebaseRecyclerAdapter;
  15. import com.google.firebase.database.DatabaseReference;
  16. import com.google.firebase.database.FirebaseDatabase;
  17. import com.squareup.picasso.Callback;
  18. import com.squareup.picasso.NetworkPolicy;
  19. import com.squareup.picasso.Picasso;
  20.  
  21. import de.hdodenhof.circleimageview.CircleImageView;
  22.  
  23. public class UsersActivity extends AppCompatActivity {
  24.  
  25.     private Toolbar mToolbar;
  26.     private RecyclerView mUsersList;
  27.     private DatabaseReference mUsersDatabase;
  28.     private ProgressDialog mDialog;
  29.     private CircleImageView mDisplayImage;
  30.  
  31.     @Override
  32.     protected void onCreate(Bundle savedInstanceState) {
  33.         super.onCreate(savedInstanceState);
  34.         setContentView(R.layout.activity_users);
  35.  
  36.         mDialog = new ProgressDialog(this);
  37.  
  38.         mToolbar = (Toolbar) findViewById(R.id.toolbar);
  39.         setSupportActionBar(mToolbar);
  40.         getSupportActionBar().setTitle("User List");
  41.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  42.  
  43.         mDisplayImage = (CircleImageView) findViewById(R.id.user_single_image);
  44.  
  45.         mUsersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
  46.         mUsersDatabase.keepSynced( true );
  47.  
  48.         mUsersList = (RecyclerView) findViewById(R.id.users_list);
  49.         mUsersList.setHasFixedSize(true);
  50.         mUsersList.setLayoutManager(new LinearLayoutManager(this));
  51.  
  52.     }
  53.  
  54.     @Override
  55.     protected void onStart() {
  56.         super.onStart();
  57.  
  58.         showLoading("Get All User Data...");
  59.  
  60.         FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
  61.                 Users.class,
  62.                 R.layout.users_single_layout,
  63.                 UsersViewHolder.class,
  64.                 mUsersDatabase
  65.         ) {
  66.             @Override
  67.             protected void populateViewHolder(UsersViewHolder usersViewHolder, Users users, int position) {
  68.                 usersViewHolder.setDisplayName(users.getName());
  69.                 usersViewHolder.setStatus(users.getStatus());
  70.                 usersViewHolder.setThumbImage(users.getThumb_image(), getApplicationContext());
  71.  
  72.                 final String user_id = getRef(position).getKey();
  73.  
  74.                 usersViewHolder.mView.setOnClickListener(new View.OnClickListener() {
  75.                     @Override
  76.                     public void onClick(View view) {
  77.  
  78.                         Intent profile_intent = new Intent(UsersActivity.this, ProfileActivity.class);
  79.                         profile_intent.putExtra("user_id", user_id);
  80.                         startActivity(profile_intent);
  81.  
  82.                     }
  83.                 });
  84.                 mDialog.dismiss();
  85.             }
  86.         };
  87.  
  88.         mUsersList.setAdapter(firebaseRecyclerAdapter);
  89.     }
  90.  
  91.     public static class UsersViewHolder extends RecyclerView.ViewHolder {
  92.  
  93.         View mView;
  94.  
  95.         public UsersViewHolder(View itemView) {
  96.             super(itemView);
  97.             mView = itemView;
  98.         }
  99.  
  100.         public void setDisplayName(String name) {
  101.             TextView userNameView = (TextView) mView.findViewById(R.id.user_single_name);
  102.             userNameView.setText(name);
  103.         }
  104.  
  105.         public void setStatus(String status) {
  106.             TextView statusView = (TextView) mView.findViewById(R.id.user_single_status);
  107.             statusView.setText(status);
  108.         }
  109.  
  110.         public void setThumbImage(final String thumb_image, final Context ctx) {
  111.             final CircleImageView userImageView = (CircleImageView) mView.findViewById(R.id.user_single_image);
  112.  
  113.             /*Picasso.with(ctx)
  114.                     .load(thumb_image)
  115.                     .placeholder(R.drawable.no_profile)
  116.                     .into( userImageView);*/
  117.  
  118.             Picasso.with(ctx)
  119.                     .load(thumb_image)
  120.                     .networkPolicy( NetworkPolicy.OFFLINE )
  121.                     .placeholder(R.drawable.no_profile)
  122.                     .into( userImageView, new Callback() {
  123.                         @Override
  124.                         public void onSuccess() {
  125.  
  126.                         }
  127.  
  128.                         @Override
  129.                         public void onError() {
  130.                             Picasso.with(ctx)
  131.                                     .load(thumb_image)
  132.                                     .placeholder(R.drawable.no_profile)
  133.                                     .into(userImageView);
  134.                         }
  135.                     } );
  136.         }
  137.     }
  138.  
  139.     private void showLoading(String s) {
  140.         mDialog.setTitle("Please wait a moment");
  141.         mDialog.setMessage(s);
  142.         mDialog.setCanceledOnTouchOutside(false);
  143.         mDialog.show();
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment