/*
|
* 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;
|
}
|
}
|