GiftAdapter.java 3.47 KB
package com.cnlive.gundam.video.adpter;

import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.cnlive.gundam.R;
import com.cnlive.gundam.video.activity.PlayerActivity;
import com.cnlive.gundam.video.fragment.chat.ChatRoomFragment;
import com.cnlive.gundam.video.model.CNMessageModle;
import com.cnlive.gundam.video.model.GiftModle;
import com.cnlive.gundam.video.model.MessageInfo;
import com.cnlive.libs.util.chat.ChatUtil;
import com.cnlive.libs.util.chat.base.IChat;
import com.cnlive.libs.util.chat.model.CNMessage;
import com.google.gson.Gson;

import java.util.List;

/**
 * @author 陈硕
 * @time 2017/5/27  16:04
 * @desc ${TODD}
 */

public class GiftAdapter extends RecyclerView.Adapter<GiftAdapter.RVHolder> {
    private Context mContext;
    private List<GiftModle> mDataList;
    private int mLayoutId;      // 条目布局文件ID
    private int mVariableId;    // DataBinding变量ID
    private String roomId;

    public GiftAdapter(String roomId, Context context, List<GiftModle> list, int layoutId, int variableId) {
        this.mContext = context;
        this.mDataList = list;
        this.mLayoutId = layoutId;
        this.mVariableId = variableId;
        this.roomId = roomId;
    }


    @Override
    public RVHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        ViewDataBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), mLayoutId, parent, false);
        RVHolder holder = new RVHolder(binding.getRoot());
        holder.binding = binding;
        return holder;
    }

    @Override
    public void onBindViewHolder(final RVHolder holder, final int position) {
        holder.binding.setVariable(mVariableId, mDataList.get(position));
        holder.binding.getRoot().findViewById(R.id.ll_item).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CNMessageModle cnMessageModle = new CNMessageModle("giftType", new MessageInfo("0", mDataList.get(position).getGiftMessage(), "1", "0", mDataList.get(position).getGiftMessage()));
                Gson gson2 = new Gson();
                String obj2 = gson2.toJson(cnMessageModle);
                ChatUtil.sendMessage(IChat.CHATROOM, roomId, obj2, new IChat.OnSendMessageListener() {
                    @Override
                    public void onAttached(CNMessage message) {

                    }

                    @Override
                    public void onSuccess(CNMessage message) {
                        PlayerActivity context = (PlayerActivity) GiftAdapter.this.mContext;

                        ChatRoomFragment chatRoomFragment = (ChatRoomFragment) context.getSupportFragmentManager().findFragmentByTag("chatRoomFragment");
                        chatRoomFragment.giftItem(position);

                    }

                    @Override
                    public void onError(CNMessage message, int what, String extra) {

                    }
                });
            }
        });
        holder.binding.executePendingBindings();
    }

    @Override
    public int getItemCount() {
        return mDataList == null ? 0 : mDataList.size();
    }

    class RVHolder extends RecyclerView.ViewHolder {
        ViewDataBinding binding;

        RVHolder(View view) {
            super(view);
        }
    }
}