kimi
2021-02-18 749a5510a9f014446a3cd6ba57b3cb0cc8148dc1
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
78
79
80
/*
 * Copyright (c) 2020 WildFireChat. All rights reserved.
 */
 
package cn.wildfire.chat.kit.contact.newfriend;
 
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import cn.wildfire.chat.kit.R;
import cn.wildfire.chat.kit.utils.GlideUtil;
import cn.wildfirechat.model.FriendRequest;
import cn.wildfirechat.model.UserInfo;
 
import java.util.List;
 
public class FriendRequestListAdapter extends RecyclerView.Adapter<FriendRequestViewHolder> {
    private List<FriendRequest> friendRequests;
    private FriendRequestListFragment fragment;
 
    public FriendRequestListAdapter(FriendRequestListFragment fragment) {
        this.fragment = fragment;
    }
 
    public void setFriendRequests(List<FriendRequest> friendRequests) {
        this.friendRequests = friendRequests;
    }
 
    @NonNull
    @Override
    public FriendRequestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View view = layoutInflater.inflate(R.layout.contact_item_new_friend, parent, false);
        return new FriendRequestViewHolder(fragment, this, view);
    }
 
    public void onUserInfosUpdate(List<UserInfo> userInfos) {
        if (friendRequests == null || friendRequests.isEmpty()) {
            return;
        }
        for (UserInfo info : userInfos) {
            for (int i = 0; i < friendRequests.size(); i++) {
                if (friendRequests.get(i).target.equals(info.uid)) {
                    notifyItemChanged(i);
                }
            }
        }
    }
 
    @Override
    public void onBindViewHolder(@NonNull FriendRequestViewHolder holder, int position) {
        FriendRequest friendRequest = friendRequests.get(position);
        if (friendRequest.isRequest) {
            holder.onBind(friendRequests.get(position));
        } else {
            holder.nameTextView.setText(friendRequest.showName);
            holder.introTextView.setText(friendRequest.reason);
            GlideUtil.setNetPic(holder.portraitImageView, friendRequest.portrait);
            holder.subInfoTextView.setText(friendRequest.subInfo);
        }
    }
 
    @Override
    public int getItemCount() {
        return friendRequests == null ? 0 : friendRequests.size();
    }
 
    public void refreshData(List<FriendRequest> result) {
        friendRequests.clear();
        friendRequests.addAll(result);
        notifyDataSetChanged();
 
    }
 
    public List<FriendRequest> getData() {
        return this.friendRequests;
    }
}