Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ivonkhalif.ragnarok.forumalumni.chat;
- import android.content.Context;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.bumptech.glide.Glide;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- 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.ValueEventListener;
- import com.ivonkhalif.ragnarok.forumalumni.R;
- import com.ivonkhalif.ragnarok.forumalumni.anggota.Users;
- import java.util.List;
- public class PersonalChatAdapter extends RecyclerView.Adapter<PersonalChatAdapter.ViewHolder> {
- private Context context;
- private List<Users> usersList;
- private boolean isChat;
- String lastMessage;
- public PersonalChatAdapter(Context context, List<Users> usersList, boolean isChat) {
- this.context = context;
- this.usersList = usersList;
- this.isChat = isChat;
- }
- @NonNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View view = LayoutInflater.from(context).inflate(R.layout.row_chat_personal, parent, false);
- return new PersonalChatAdapter.ViewHolder(view);
- }
- @Override
- public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
- final Users user = usersList.get(position);
- holder.username.setText(user.getUsername());
- if (user.getImageURL().equals("default")){
- holder.profilImage.setImageResource(R.mipmap.ic_launcher);
- } else {
- Glide.with(context).load(user.getImageURL()).into(holder.profilImage);
- }
- if (isChat){
- lastMessage(user.getId(), holder.last_msg);
- } else {
- holder.last_msg.setVisibility(View.GONE);
- }
- if (isChat){
- if (user.getStatus().equals("online")){
- holder.img_on.setVisibility(View.VISIBLE);
- holder.img_off.setVisibility(View.GONE);
- } else {
- holder.img_on.setVisibility(View.GONE);
- holder.img_off.setVisibility(View.VISIBLE);
- }
- } else{
- holder.img_on.setVisibility(View.GONE);
- holder.img_off.setVisibility(View.GONE);
- }
- holder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent= new Intent(context, ChatActivity.class);
- intent.putExtra("userid", user.getId());
- context.startActivity(intent);
- }
- });
- }
- @Override
- public int getItemCount() {
- return 0;
- }
- public class ViewHolder extends RecyclerView.ViewHolder {
- public TextView username, last_msg;
- public ImageView profilImage;
- private ImageView img_on, img_off;
- public ViewHolder(View itemView) {
- super(itemView);
- username = itemView.findViewById(R.id.tx_name);
- profilImage = itemView.findViewById(R.id.img_cp_list);
- img_on = itemView.findViewById(R.id.img_on);
- img_off = itemView.findViewById(R.id.img_off);
- last_msg = itemView.findViewById(R.id.last_msg);
- }
- }
- //check for last message
- private void lastMessage(final String userid, final TextView last_msg){
- lastMessage = "default";
- final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
- DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Chats");
- reference.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- for (DataSnapshot snapshot : dataSnapshot.getChildren()){
- ChatModel chat = snapshot.getValue(ChatModel.class);
- if (chat.getReceiver().equals(firebaseUser.getUid()) && chat.getSender().equals(userid) ||
- chat.getReceiver().equals(userid) && chat.getSender().equals(firebaseUser.getUid())){
- lastMessage = chat.getMessage();
- }
- }
- switch (lastMessage){
- case "default":
- last_msg.setText("Tidak ada Pesan");
- break;
- default:
- last_msg.setText(lastMessage);
- break;
- }
- lastMessage = "default"
- ; }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement