| 25 | |
| 26 | |
| 27 | public class chatPageAdapter extends RecyclerView.Adapter<chatPageAdapter.ViewHolder> { |
| 28 | |
| 29 | private final ArrayList<UserModel> userData; |
| 30 | Context context; |
| 31 | private static OnClickListener listener; |
| 32 | FirebaseDatabase firebaseDatabase; |
| 33 | FirebaseAuth firebaseAuth; |
| 34 | |
| 35 | public chatPageAdapter(ArrayList<UserModel> userData, Context context) { |
| 36 | this.userData = userData; |
| 37 | this.context = context; |
| 38 | } |
| 39 | |
| 40 | @NonNull |
| 41 | @Override |
| 42 | public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { |
| 43 | |
| 44 | View view = LayoutInflater.from(parent.getContext()) |
| 45 | .inflate(R.layout.chats_list_items, parent, false); |
| 46 | |
| 47 | return new ViewHolder(view); |
| 48 | } |
| 49 | |
| 50 | |
| 51 | @Override |
| 52 | public void onBindViewHolder(@NonNull ViewHolder holder, int position) { |
| 53 | |
| 54 | |
| 55 | userData.sort(Comparator.comparing(UserModel::getRecentMsgTime).reversed()); |
| 56 | |
| 57 | firebaseAuth = FirebaseAuth.getInstance(); |
| 58 | firebaseDatabase = FirebaseDatabase.getInstance(); |
| 59 | |
| 60 | |
| 61 | // Show date/time on contact list |
| 62 | final Calendar cal = Calendar.getInstance(); |
| 63 | cal.setTimeInMillis(userData.get(position).getRecentMsgTime()); |
| 64 | final String timeString1 = |
| 65 | new SimpleDateFormat("dd-M-yy HH:mm").format(cal.getTime()); |
| 66 | final String timeString2 = |
| 67 | new SimpleDateFormat("dd-M-yy HH:mm").format(new Date().getTime()); |
| 68 | int diff = Integer.parseInt(timeString2.substring(0, 2)) - Integer.parseInt(timeString1.substring(0, 2)); |
| 69 | |
| 70 | if (diff < 1) { |
| 71 | holder.recent_time.setText(timeString1.trim().substring(8)); |
| 72 | } else if (diff >= 1) { |
| 73 | holder.recent_time.setText(timeString1.trim().substring(0, 8)); |
| 74 | } |
| 75 | |
| 76 | |
| 77 | holder.chat_name.setText(userData.get(position).getUserName()); |
| 78 | holder.recent_message.setText(userData.get(position).getRecentMessage()); |
| 79 | |
| 80 | String picUrl = userData.get(position).getProfilePic(); |
| 81 | |
| 82 | Picasso.get().load(picUrl) |
| 83 | .fit().centerCrop() |
| 84 | .placeholder(R.drawable.user) |
nothing calls this directly
no outgoing calls
no test coverage detected