IOS
hefeixia
2021-02-18 49f3c1374873f73dbde2983ca0fcf1fb10bfedbf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
 * 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;
    }
 
 
}