MsgViewHolderRedPacket.java 3.49 KB
Newer Older
konghaorui committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
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;
konghaorui committed
19
import com.yidianling.im.api.bean.ReceiveRedPacketParam;
konghaorui committed
20
import com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase;
konghaorui committed
21
import com.yidianling.user.api.bean.UserResponseBean;
konghaorui committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

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() {
konghaorui committed
44
        return R.layout.im_ui_message_red_packet;
konghaorui committed
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
    }

    @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)) {

konghaorui committed
75
                        UserResponseBean.UserInfo userInfo = ImIn.INSTANCE.getUserInfo();
konghaorui committed
76 77 78 79 80 81 82 83 84 85
                        ReceiveRedPacketParam param = new ReceiveRedPacketParam(
                                data.status,
                                data.money,
                                userInfo.getNick_name(),
                                userInfo.getHead(),
                                user.getAvatar(),
                                user.getNickName(),
                                data.get_time
                        );

konghaorui committed
86
                        ImIn.INSTANCE.receiveRedPacketIntent((Activity) context, param);
konghaorui committed
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

                    }
                }, throwable -> HttpErrorUtils.Companion.handleError(context, throwable));

    }

    //打开已经被领取的红包
    private void openHasOpened() {

    }

    //打开未被领取的红包
    private void openUnOpened() {

    }
}