/* * 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 { private List friendRequests; private FriendRequestListFragment fragment; public FriendRequestListAdapter(FriendRequestListFragment fragment) { this.fragment = fragment; } public void setFriendRequests(List 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 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 result) { friendRequests.clear(); friendRequests.addAll(result); notifyDataSetChanged(); } public List getData() { return this.friendRequests; } }