package com.yidianling.im.session.viewholder; import android.app.Activity; import android.view.View; 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.CustomAttachRedPacket; import com.yidianling.nimbase.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; import com.yidianling.im.api.bean.ReceiveRedPacketParam; import com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase; import com.yidianling.user.api.bean.UserResponseBean; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; /** * Created by wi1ls on 2017/1/10. */ public class MsgViewHolderRedPacket extends MsgViewHolderBase { private String pocket_id; private String title; private View message_red_packet; public MsgViewHolderRedPacket(BaseMultiItemFetchLoadAdapter adapter) { super(adapter); } @Override protected int getContentResId() { return R.layout.im_ui_message_red_packet; } @Override protected void inflateContentView() { message_red_packet = findViewById(R.id.message_red_packet); } @Override protected void bindContentView() { CustomAttachRedPacket customAttachRedPacket = (CustomAttachRedPacket) message.getAttachment(); pocket_id = customAttachRedPacket.getPocket_id(); title = customAttachRedPacket.getTitle(); LogUtil.d("get title: "+title); ((TextView) message_red_packet.findViewById(R.id.packet_title)).setText(title); hideItemBg(); } @Override protected void onItemClick() { RedPacketDetailCmd cmd = new RedPacketDetailCmd(pocket_id); ImRetrofitApi.Companion.getImRetrofitApi().redPacketDetail(NetworkParamsUtils.getMaps(cmd)) .subscribeOn(Schedulers.io()) .compose(RxUtils.INSTANCE.resultData()) .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)); } //打开已经被领取的红包 private void openHasOpened() { } //打开未被领取的红包 private void openUnOpened() { } }