package com.yidianling.im.session.viewholder;
import android.app.Activity;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.widget.TextView;
import com.ydl.ydlcommon.data.http.RxUtils;
import com.ydl.ydlcommon.utils.NetworkParamsUtils;
import com.ydl.ydlcommon.utils.UserInfoCache;
import com.ydl.ydlcommon.utils.remind.HttpErrorUtils;
import com.yidianling.common.tools.LogUtil;
import com.yidianling.im.R;
import com.yidianling.im.bean.RedPacketDetailBean;
import com.yidianling.im.bean.RedPacketDetailCmd;
import com.yidianling.im.http.ImRetrofitApi;
import com.yidianling.im.router.ImIn;
import com.yidianling.im.session.extension.CustomAttachmentRedStatus;
import com.yidianling.nimbase.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
import com.yidianling.im.api.bean.ReceiveRedPacketParam;
import com.yidianling.user.api.bean.UserResponseBean;
import com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
/**
* Created by wi1ls on 2017/1/13.
*/
public class MsgViewHolderRedStatus extends MsgViewHolderBase {
private TextView message_receive_tv;
private String pocket_id;
public MsgViewHolderRedStatus(BaseMultiItemFetchLoadAdapter adapter) {
super(adapter);
}
@Override
protected int getContentResId() {
return R.layout.im_ui_message_red_status;
}
@Override
protected void inflateContentView() {
message_receive_tv = findViewById(R.id.message_receive_tv);
}
@Override
protected void bindContentView() {
CustomAttachmentRedStatus customAttachmentRedStatus = (CustomAttachmentRedStatus) message.getAttachment();
String from_content = customAttachmentRedStatus.getFrom_content();
LogUtil.d("from content: "+from_content);
pocket_id = customAttachmentRedStatus.getPocket_id();
int redIndex = from_content.indexOf("红包");
SpannableStringBuilder ssb = new SpannableStringBuilder(from_content);
ForegroundColorSpan fcs = new ForegroundColorSpan(0xffd3574c);
ssb.setSpan(fcs, redIndex, redIndex + 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
message_receive_tv.setText(
ssb
);
hideItemBg();
hideHead();
}
@Override
protected void onItemClick() {
RedPacketDetailCmd cmd = new RedPacketDetailCmd(pocket_id);
Disposable subscribe = ImRetrofitApi.Companion.getImRetrofitApi().redPacketDetail(NetworkParamsUtils.getMaps(cmd))
.compose(RxUtils.INSTANCE.resultData())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(resp -> {
RedPacketDetailBean data = resp;
UserInfoCache.YDLUser user = UserInfoCache.getInstance().getUser(data.to_uid);
if ((ImIn.INSTANCE.getUserInfo().getUid() + "").equals(data.uid)) {
UserResponseBean.UserInfo userInfo = ImIn.INSTANCE.getUserInfo();
ReceiveRedPacketParam param = new ReceiveRedPacketParam(
data.status,
data.money,
userInfo.getNick_name(),
userInfo.getHead(),
user.getAvatar(),
user.getNickName(),
data.get_time
);
ImIn.INSTANCE.receiveRedPacketIntent((Activity) context, param);
}
}, throwable -> HttpErrorUtils.Companion.handleError(context, throwable));
}
}