SubscribeShowAdapter.java 5.8 KB
package com.cnlive.goldenline.ui.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;

import com.cnlive.goldenline.R;
import com.cnlive.goldenline.model.response.ThreatreInfoResponse;
import com.cnlive.goldenline.model.response.bean.LiveShowBean;
import com.cnlive.goldenline.ui.adapter.viewholder.CommentTitleViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.CommentViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.DividerViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.EmptyViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.InterActionGridViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.RecommendLiveShowViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.SingleButtonViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.SubscribeShowInfoViewHolder;
import com.cnlive.goldenline.ui.adapter.viewholder.TheatreBasicInfoViewHolder;
import com.cnlive.goldenline.ui.base.BaseRecyclerAdapter;
import com.cnlive.goldenline.ui.model.CommentBean;
import com.cnlive.goldenline.ui.model.CommentTitleBean;
import com.cnlive.goldenline.ui.model.DividerBean;
import com.cnlive.goldenline.ui.model.RecommendLiveShowBean;
import com.cnlive.goldenline.ui.model.RecyclerViewNormalBean;
import com.cnlive.goldenline.ui.model.SingleButtonBean;

import java.util.List;

/**
 * Description:重磅预约详情 适配器
 * Created on 2017/3/5
 * Author : 萧
 */
public class SubscribeShowAdapter extends BaseRecyclerAdapter<RecyclerViewNormalBean> {

    private static final String TAG = "SubscribeShowAdapter";

    public SubscribeShowAdapter(Context context) {
        super(context);
    }

    @Override
    public int getItemViewType(int position) {
        return getItem(position).getDataType();
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view;
        switch (viewType) {
            case ViewType.TYPE_DIVIDER: //分割线
                view = inflater.inflate(R.layout.layout_divider, parent, false);
                return new DividerViewHolder(view);

            case ViewType.TYPE_RECOMMEND: //点播推荐
                view = inflater.inflate(R.layout.layout_subscribeshow_recommendliveshow_item, parent, false);
                return new RecommendLiveShowViewHolder(view);

            case ViewType.TYPE_THEATREBASICINFO: //剧院基础信息 头像 名称 粉丝数
                view = inflater.inflate(R.layout.layout_theatre_basicinfo, parent, false);
                return new TheatreBasicInfoViewHolder(view);

            case ViewType.TYPE_COMMENT_TITLE: //评论列表标题栏
                view = inflater.inflate(R.layout.layout_comment_title, parent, false);
                return new CommentTitleViewHolder(view);

            case ViewType.TYPE_COMMENT: //评论
                view = inflater.inflate(R.layout.layout_comment_item, parent, false);
                return new CommentViewHolder(view);

            case ViewType.TYPE_INFO://节目信息
                view = inflater.inflate(R.layout.layout_subscribeshow_basicinfo, parent, false);
                return new SubscribeShowInfoViewHolder(view);

            case ViewType.TYPE_OTHER://其余
                view = inflater.inflate(R.layout.layout_single_button, parent, false);
                return new SingleButtonViewHolder(view);

            case ViewType.TYPE_INTERACTION: //互动
                view = inflater.inflate(R.layout.layout_interaction_info, parent, false);
                return new InterActionGridViewHolder(view);
            default:
                return new EmptyViewHolder(null);
        }
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

         RecyclerViewNormalBean data = getItem(position);

        if (holder instanceof DividerViewHolder) {
            DividerViewHolder dividerViewHolder = (DividerViewHolder) holder;
            dividerViewHolder.show(mContext, (DividerBean) data.getT());

        } else if (holder instanceof SingleButtonViewHolder) {
            SingleButtonViewHolder btnHolder = (SingleButtonViewHolder) holder;
            btnHolder.show(mContext, (SingleButtonBean) data.getT(), position);

        } else if (holder instanceof CommentViewHolder) {  //评论---->未完成

            CommentViewHolder commentHolder = (CommentViewHolder) holder;
            commentHolder.show(mContext, (CommentBean) data.getT());

        } else if (holder instanceof CommentTitleViewHolder) {  //评论标题holder--->完成
            CommentTitleViewHolder titleHolder = (CommentTitleViewHolder) holder;
            titleHolder.show(mContext, (CommentTitleBean) data.getT());

        } else if (holder instanceof RecommendLiveShowViewHolder) { //推荐直播
            RecommendLiveShowViewHolder recLiveHolder = (RecommendLiveShowViewHolder) holder;
            recLiveHolder.show(mContext, (RecommendLiveShowBean) data.getT());

        } else if (holder instanceof SubscribeShowInfoViewHolder) { //预约holder---->完成
            SubscribeShowInfoViewHolder subsHolder = (SubscribeShowInfoViewHolder) holder;
            subsHolder.show(mContext, (LiveShowBean) data.getT());

        } else if (holder instanceof InterActionGridViewHolder) {  //显示已预约的人数和头像--->完成
            InterActionGridViewHolder interActionHolder = (InterActionGridViewHolder) holder;
            interActionHolder.show(mContext, (List<String>) data.getT());

        } else if (holder instanceof TheatreBasicInfoViewHolder) { //剧院基本信息展示holder---->完成
            TheatreBasicInfoViewHolder viewHolder = (TheatreBasicInfoViewHolder) holder;
            viewHolder.show(mContext, (ThreatreInfoResponse) data.getT(), position);

        }
    }
}