/*
|
* Copyright (c) 2020 WildFireChat. All rights reserved.
|
*/
|
|
package cn.wildfire.chat.kit.contact.newfriend;
|
|
import android.text.TextUtils;
|
import android.view.View;
|
import android.widget.Button;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
import androidx.lifecycle.ViewModelProviders;
|
import androidx.recyclerview.widget.RecyclerView;
|
import butterknife.BindView;
|
import butterknife.ButterKnife;
|
import butterknife.OnClick;
|
import cn.wildfire.chat.kit.R;
|
import cn.wildfire.chat.kit.R2;
|
import cn.wildfire.chat.kit.contact.ContactViewModel;
|
import cn.wildfire.chat.kit.user.UserViewModel;
|
import cn.wildfirechat.model.FriendRequest;
|
import cn.wildfirechat.model.UserInfo;
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.request.RequestOptions;
|
|
public class FriendRequestViewHolder extends RecyclerView.ViewHolder {
|
private FriendRequestListFragment fragment;
|
private FriendRequestListAdapter adapter;
|
private FriendRequest friendRequest;
|
private UserViewModel userViewModel;
|
private ContactViewModel contactViewModel;
|
|
@BindView(R2.id.portraitImageView)
|
ImageView portraitImageView;
|
@BindView(R2.id.nameTextView)
|
TextView nameTextView;
|
@BindView(R2.id.subInfoTextView)
|
TextView subInfoTextView;
|
@BindView(R2.id.introTextView)
|
TextView introTextView;
|
@BindView(R2.id.acceptButton)
|
Button acceptButton;
|
@BindView(R2.id.acceptStatusTextView)
|
TextView acceptStatusTextView;
|
|
public FriendRequestViewHolder(FriendRequestListFragment fragment, FriendRequestListAdapter adapter, View itemView) {
|
super(itemView);
|
this.fragment = fragment;
|
this.adapter = adapter;
|
ButterKnife.bind(this, itemView);
|
userViewModel =ViewModelProviders.of(fragment).get(UserViewModel.class);
|
contactViewModel = ViewModelProviders.of(fragment).get(ContactViewModel.class);
|
}
|
|
@OnClick(R2.id.acceptButton)
|
void accept() {
|
contactViewModel.acceptFriendRequest(friendRequest.target).observe(fragment, aBoolean -> {
|
if (aBoolean) {
|
this.friendRequest.status = 1;
|
acceptButton.setVisibility(View.GONE);
|
} else {
|
Toast.makeText(fragment.getActivity(), "操作失败", Toast.LENGTH_SHORT).show();
|
}
|
});
|
}
|
|
public void onBind(FriendRequest friendRequest) {
|
this.friendRequest = friendRequest;
|
UserInfo userInfo = userViewModel.getUserInfo(friendRequest.target, false);
|
|
if (userInfo != null && !TextUtils.isEmpty(userInfo.displayName)) {
|
nameTextView.setText(userInfo.displayName);
|
friendRequest.showName = userInfo.displayName;
|
friendRequest.phone = userInfo.mobile;
|
} else {
|
nameTextView.setText("<" + friendRequest.target + ">");
|
}
|
if (!TextUtils.isEmpty(friendRequest.reason)) {
|
introTextView.setText(friendRequest.reason);
|
}
|
// TODO status
|
|
switch (friendRequest.status) {
|
case 0:
|
acceptButton.setVisibility(View.VISIBLE);
|
acceptStatusTextView.setVisibility(View.GONE);
|
break;
|
case 1:
|
acceptButton.setVisibility(View.GONE);
|
acceptStatusTextView.setText("已添加");
|
break;
|
default:
|
acceptButton.setVisibility(View.GONE);
|
acceptStatusTextView.setText("已拒绝");
|
break;
|
}
|
|
if (userInfo != null) {
|
//TODO 职称信息 医院 科室
|
|
// subInfoTextView.setText(MessageFormat.format("{0} {1} {2}", userInfo.address));
|
Glide.with(fragment).load(userInfo.portrait).apply(new RequestOptions().placeholder(R.mipmap.avatar_def).centerCrop()).into(portraitImageView);
|
}
|
}
|
|
}
|