/*
|
* 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<UIUserInfo> getCheckedContacts() {
|
List<UIUserInfo> 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;
|
}
|
|
|
}
|