Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 5.09 KB | None | 0 0
  1. package com.ivonkhalif.ragnarok.forumalumni.chat;
  2.  
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.support.annotation.NonNull;
  6. import android.support.v7.widget.RecyclerView;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.widget.ImageView;
  11. import android.widget.TextView;
  12.  
  13. import com.bumptech.glide.Glide;
  14. import com.google.firebase.auth.FirebaseAuth;
  15. import com.google.firebase.auth.FirebaseUser;
  16. import com.google.firebase.database.DataSnapshot;
  17. import com.google.firebase.database.DatabaseError;
  18. import com.google.firebase.database.DatabaseReference;
  19. import com.google.firebase.database.FirebaseDatabase;
  20. import com.google.firebase.database.ValueEventListener;
  21. import com.ivonkhalif.ragnarok.forumalumni.R;
  22. import com.ivonkhalif.ragnarok.forumalumni.anggota.Users;
  23.  
  24. import java.util.List;
  25.  
  26. public class PersonalChatAdapter extends RecyclerView.Adapter<PersonalChatAdapter.ViewHolder> {
  27.  
  28.     private Context context;
  29.     private List<Users> usersList;
  30.     private boolean isChat;
  31.  
  32.     String lastMessage;
  33.  
  34.     public PersonalChatAdapter(Context context, List<Users> usersList, boolean isChat) {
  35.         this.context = context;
  36.         this.usersList = usersList;
  37.         this.isChat = isChat;
  38.     }
  39.  
  40.  
  41.     @NonNull
  42.     @Override
  43.     public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  44.         View view = LayoutInflater.from(context).inflate(R.layout.row_chat_personal, parent, false);
  45.  
  46.         return new PersonalChatAdapter.ViewHolder(view);
  47.     }
  48.  
  49.     @Override
  50.     public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
  51.         final Users user = usersList.get(position);
  52.         holder.username.setText(user.getUsername());
  53.  
  54.         if (user.getImageURL().equals("default")){
  55.             holder.profilImage.setImageResource(R.mipmap.ic_launcher);
  56.         } else {
  57.             Glide.with(context).load(user.getImageURL()).into(holder.profilImage);
  58.         }
  59.  
  60.         if (isChat){
  61.             lastMessage(user.getId(), holder.last_msg);
  62.         } else {
  63.             holder.last_msg.setVisibility(View.GONE);
  64.         }
  65.  
  66.         if (isChat){
  67.             if (user.getStatus().equals("online")){
  68.                 holder.img_on.setVisibility(View.VISIBLE);
  69.                 holder.img_off.setVisibility(View.GONE);
  70.             } else {
  71.                 holder.img_on.setVisibility(View.GONE);
  72.                 holder.img_off.setVisibility(View.VISIBLE);
  73.             }
  74.         } else{
  75.             holder.img_on.setVisibility(View.GONE);
  76.             holder.img_off.setVisibility(View.GONE);
  77.         }
  78.  
  79.         holder.itemView.setOnClickListener(new View.OnClickListener() {
  80.             @Override
  81.             public void onClick(View v) {
  82.                 Intent intent= new Intent(context, ChatActivity.class);
  83.                 intent.putExtra("userid", user.getId());
  84.                 context.startActivity(intent);
  85.             }
  86.         });
  87.     }
  88.  
  89.     @Override
  90.     public int getItemCount() {
  91.         return 0;
  92.     }
  93.  
  94.     public class ViewHolder extends RecyclerView.ViewHolder {
  95.         public TextView username, last_msg;
  96.         public ImageView profilImage;
  97.         private ImageView img_on, img_off;
  98.  
  99.  
  100.         public ViewHolder(View itemView) {
  101.             super(itemView);
  102.  
  103.             username = itemView.findViewById(R.id.tx_name);
  104.             profilImage = itemView.findViewById(R.id.img_cp_list);
  105.             img_on = itemView.findViewById(R.id.img_on);
  106.             img_off = itemView.findViewById(R.id.img_off);
  107.             last_msg = itemView.findViewById(R.id.last_msg);
  108.         }
  109.     }
  110.  
  111.     //check for last message
  112.     private void lastMessage(final String userid, final TextView last_msg){
  113.         lastMessage = "default";
  114.         final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
  115.         DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Chats");
  116.  
  117.         reference.addValueEventListener(new ValueEventListener() {
  118.             @Override
  119.             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  120.                 for (DataSnapshot snapshot : dataSnapshot.getChildren()){
  121.                     ChatModel chat = snapshot.getValue(ChatModel.class);
  122.  
  123.                     if (chat.getReceiver().equals(firebaseUser.getUid()) && chat.getSender().equals(userid) ||
  124.                     chat.getReceiver().equals(userid) && chat.getSender().equals(firebaseUser.getUid())){
  125.                         lastMessage = chat.getMessage();
  126.                     }
  127.                 }
  128.  
  129.                 switch (lastMessage){
  130.                     case "default":
  131.                         last_msg.setText("Tidak ada Pesan");
  132.                         break;
  133.  
  134.                     default:
  135.                         last_msg.setText(lastMessage);
  136.                         break;
  137.                 }
  138.  
  139.                 lastMessage = "default"
  140. ;            }
  141.  
  142.             @Override
  143.             public void onCancelled(@NonNull DatabaseError databaseError) {
  144.  
  145.             }
  146.         });
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement