219 lines
8.0 KiB
Java
219 lines
8.0 KiB
Java
package com.shayu.onetoone.adapter;
|
|
|
|
import android.content.Context;
|
|
import android.text.TextUtils;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.ImageView;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.shayu.onetoone.R;
|
|
import com.shayu.onetoone.bean.SearchUserBean;
|
|
import com.yunbao.common.CommonAppConfig;
|
|
import com.yunbao.common.Constants;
|
|
import com.yunbao.common.adapter.RefreshAdapter;
|
|
import com.yunbao.common.bean.LevelBean;
|
|
import com.yunbao.common.bean.LiveBean;
|
|
import com.yunbao.common.custom.MyRadioButton;
|
|
import com.yunbao.common.glide.ImgLoader;
|
|
import com.yunbao.common.http.CommonHttpUtil;
|
|
import com.yunbao.common.http.HttpCallback;
|
|
import com.yunbao.common.http.LiveHttpUtil;
|
|
import com.yunbao.common.utils.CommonIconUtil;
|
|
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
|
|
import com.yunbao.common.utils.RouteUtil;
|
|
|
|
import java.util.List;
|
|
|
|
import pl.droidsonroids.gif.GifImageView;
|
|
|
|
/**
|
|
* Created by cxf on 2018/9/29.
|
|
*/
|
|
|
|
public class SearchAdapter extends RefreshAdapter<SearchUserBean> {
|
|
|
|
private View.OnClickListener mFollowClickListener;
|
|
private View.OnClickListener mClickListener;
|
|
private String mFollow;
|
|
private String mFollowing;
|
|
private int mFrom;
|
|
private String mUid;
|
|
|
|
public SearchAdapter(Context context, int from) {
|
|
super(context);
|
|
mFrom = from;
|
|
mFollow =mContext.getString(R.string.follow);
|
|
mFollowing =mContext.getString(R.string.following);
|
|
mFollowClickListener = new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (!canClick()) {
|
|
return;
|
|
}
|
|
Object tag = v.getTag();
|
|
if (tag == null) {
|
|
return;
|
|
}
|
|
SearchUserBean bean = (SearchUserBean) tag;
|
|
CommonHttpUtil.setAttention(bean.getId(), null);
|
|
}
|
|
};
|
|
mClickListener = new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (!canClick()) {
|
|
return;
|
|
}
|
|
Object tag = v.getTag();
|
|
if (tag == null) {
|
|
return;
|
|
}
|
|
SearchUserBean bean = (SearchUserBean) tag;
|
|
if (mOnItemClickListener != null) {
|
|
mOnItemClickListener.onItemClick(bean, 0);
|
|
}
|
|
}
|
|
};
|
|
mUid = CommonAppConfig.getInstance().getUid();
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
return new Vh(mInflater.inflate(R.layout.item_search, parent, false));
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder vh, int position, @NonNull List payloads) {
|
|
Object payload = payloads.size() > 0 ? payloads.get(0) : null;
|
|
((Vh) vh).setData(mList.get(position), position, payload);
|
|
}
|
|
|
|
public void updateItem(String id, int attention) {
|
|
if (TextUtils.isEmpty(id)) {
|
|
return;
|
|
}
|
|
for (int i = 0, size = mList.size(); i < size; i++) {
|
|
SearchUserBean bean = mList.get(i);
|
|
if (bean != null && id.equals(bean.getId())) {
|
|
bean.setAttention(attention);
|
|
notifyItemChanged(i, Constants.PAYLOAD);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
class Vh extends RecyclerView.ViewHolder {
|
|
|
|
ImageView mAvatar;
|
|
TextView mName;
|
|
TextView mSign;
|
|
ImageView mSex;
|
|
ImageView mLevelAnchor;
|
|
ImageView mLevel;
|
|
MyRadioButton mBtnFollow;
|
|
GifImageView btn_live;
|
|
|
|
public Vh(View itemView) {
|
|
super(itemView);
|
|
mAvatar = (ImageView) itemView.findViewById(R.id.avatar);
|
|
mName = (TextView) itemView.findViewById(R.id.name);
|
|
mSign = (TextView) itemView.findViewById(R.id.sign);
|
|
mSex = (ImageView) itemView.findViewById(R.id.sex);
|
|
mLevelAnchor = (ImageView) itemView.findViewById(R.id.level_anchor);
|
|
mLevel = (ImageView) itemView.findViewById(R.id.level);
|
|
mBtnFollow = (MyRadioButton) itemView.findViewById(R.id.btn_follow);
|
|
btn_live = (GifImageView) itemView.findViewById(R.id.btn_live);
|
|
itemView.setOnClickListener(mClickListener);
|
|
mBtnFollow.setOnClickListener(mFollowClickListener);
|
|
}
|
|
|
|
void setData(final SearchUserBean bean, int position, Object payload) {
|
|
itemView.setTag(bean);
|
|
mBtnFollow.setTag(bean);
|
|
if (payload == null) {
|
|
ImgLoader.displayAvatar(mContext, bean.getAvatar(), mAvatar);
|
|
mName.setText(bean.getUserNiceName());
|
|
mSign.setText(bean.getSignature());
|
|
mSex.setImageResource(CommonIconUtil.getSexIcon(bean.getSex()));
|
|
btn_live.setVisibility(View.GONE);
|
|
if (bean.getIslive() != null && bean.getIslive().equals("1")) {
|
|
btn_live.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
btn_live.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View view) {
|
|
gotoLive(bean.getId());
|
|
}
|
|
});
|
|
LevelBean anchorLevelBean = CommonAppConfig.getInstance().getAnchorLevel(bean.getLevelAnchor());
|
|
if (anchorLevelBean != null) {
|
|
ImgLoader.display(mContext, CommonAppConfig.getInstance().HOST + anchorLevelBean.getThumb(), mLevelAnchor);
|
|
}
|
|
LevelBean levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel());
|
|
if (levelBean != null) {
|
|
ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
|
|
}
|
|
}
|
|
// if (mUid.equals(bean.getId())) {
|
|
// if (mBtnFollow.getVisibility() == View.VISIBLE) {
|
|
// mBtnFollow.setVisibility(View.INVISIBLE);
|
|
// }
|
|
// } else {
|
|
// if (mBtnFollow.getVisibility() != View.VISIBLE) {
|
|
// mBtnFollow.setVisibility(View.VISIBLE);
|
|
// }
|
|
// if (bean.getAttention() == 1) {
|
|
// mBtnFollow.doChecked(true);
|
|
// mBtnFollow.setText(mFollowing);
|
|
// } else {
|
|
// mBtnFollow.doChecked(false);
|
|
// mBtnFollow.setText(mFollow);
|
|
// }
|
|
// }
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private void gotoLive(final String live_id) {
|
|
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
|
|
@Override
|
|
public void onSuccess(int code, String msg, String[] info) {
|
|
if (code == 0 && info.length > 0) {
|
|
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
|
|
if (liveBean == null) {
|
|
return;
|
|
}
|
|
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
|
|
@Override
|
|
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
|
|
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
|
|
}
|
|
|
|
@Override
|
|
public void onCheckError(String contextError) {
|
|
|
|
}
|
|
});
|
|
} else {
|
|
RouteUtil.forwardUserHome(mContext, live_id, 0);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|