/* * Copyright (c) 2020 WildFireChat. All rights reserved. */ package cn.wildfire.chat.kit.contact.pick; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; import cn.wildfire.chat.kit.R; import cn.wildfire.chat.kit.contact.UserListAdapter; import cn.wildfire.chat.kit.contact.model.UIUserInfo; import cn.wildfire.chat.kit.contact.pick.viewholder.CheckableUserViewHolder; import java.util.ArrayList; import java.util.List; public class CheckableUserListAdapter extends UserListAdapter { private int maxCheckCount; public CheckableUserListAdapter(Fragment fragment) { super(fragment); } public void setMaxCheckCount(int maxCheckCount) { this.maxCheckCount = maxCheckCount; } public int getMaxCheckCount() { return maxCheckCount; } public void updateUserStatus(UIUserInfo userInfo) { if (users != null && userInfo != null) { for (int i = 0; i < users.size(); i++) { if (users.get(i).getUserInfo().uid.equals(userInfo.getUserInfo().uid)) { users.set(i, userInfo); notifyItemChanged(headerCount() + i); } } } } public List getCheckedContacts() { List checkedContacts = new ArrayList<>(); if (users == null || users.isEmpty()) { return checkedContacts; } for (UIUserInfo userInfo : users) { if (userInfo.isChecked()) { checkedContacts.add(userInfo); } } return checkedContacts; } @Override protected RecyclerView.ViewHolder onCreateContactViewHolder(@NonNull ViewGroup parent, int viewType) { View itemView; itemView = LayoutInflater.from(fragment.getActivity()).inflate(R.layout.contact_item_contact, parent, false); CheckableUserViewHolder viewHolder = new CheckableUserViewHolder(fragment, this, itemView); itemView.setOnClickListener(v -> { UIUserInfo userInfo = viewHolder.getBindContact(); if (onUserClickListener != null) { onUserClickListener.onUserClick(userInfo); } }); return viewHolder; } }