package com.edufound.reader.adapter; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.Space; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.edufound.reader.activity.RecordActivity; import com.edufound.reader.activity.SmallFullVideoActivity; import com.edufound.reader.bean.ModelBean; import com.edufound.reader.bean.UserRecordBean; import com.edufound.reader.cusview.CusToast; import com.edufound.reader.cusview.ModelViewA; import com.edufound.reader.cusview.ModelViewB; import com.edufound.reader.cusview.ModelViewC; import com.edufound.reader.cusview.ModelViewD; import com.edufound.reader.cusview.ModelViewE; import com.edufound.reader.cusview.ModelViewF; import com.edufound.reader.cusview.ModelViewG; import com.edufound.reader.cusview.ModelViewWidthA; import com.edufound.reader.util.EfunboxUtil; import com.google.gson.Gson; import com.orhanobut.logger.Logger; import java.util.ArrayList; import java.util.List; public class FragmentEventAdapter extends RecyclerView.Adapter { private Context mContext; private List mListModelBean; private showRuleOnClickListener mShowRuleOnClickListener; private Gson mGson; List jsonBeanList; public FragmentEventAdapter(Context context, List listData) { mContext = context; mListModelBean = listData; mGson = new Gson(); jsonBeanList = new ArrayList<>(); } public void setShowRuleOnClickListener(showRuleOnClickListener listener) { mShowRuleOnClickListener = listener; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (mListModelBean.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_1")) { return new IMAGETEMPLATE1(new ModelViewA(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_2")) { return new IMAGETEMPLATE1(new ModelViewWidthA(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("RED_FLOWER_TEMPLATE_1")) { return new REDFLOWERTEMPLATE1(new ModelViewB(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("EXCELLENT_TEMPLATE_1")) { return new EXCELLENTTEMPLATE1(new ModelViewC(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_1")) { return new RACETEMPLATE1(new ModelViewD(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_2")) { return new RACETEMPLATE2(new ModelViewF(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_3")) { return new RACETEMPLATE3(new ModelViewE(mContext)); } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_4")) { return new RACETEMPLATE4(new ModelViewG(mContext)); } return new NOITEM(new Space(mContext)); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) { if (holder instanceof IMAGETEMPLATE1) { //单张图片或者是单张宽图 ((ModelViewA) holder.itemView).setView(mListModelBean.get(position).getImg(), o -> { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { EfunboxUtil.toWebFlowerActivity(mContext, (mListModelBean.get(position)).getUrl(), String.valueOf((mListModelBean.get(position)).getId())); } }); } else if (holder instanceof EXCELLENTTEMPLATE1) { //类型1优秀作品展播 ((ModelViewC) holder.itemView).setView((mListModelBean.get(position)).getImg(), mListModelBean.get(position), mListModelBean.get(position).getReadUserList().get(0).getTopList()); ((ModelViewC) holder.itemView).setItemClickListener(new ModelViewC.onItemClickListener() { @Override public void clickExample(ModelBean bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { //进入官方 toRecordActivity(bean.getReadUserList().get(0).getExample().getId()); } } @Override public void clickItem(View view, int position, UserRecordBean bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { //点击item jsonBeanList.clear(); jsonBeanList.add(bean); Logger.e("mGson.toJson(jsonBeanList):" + mGson.toJson(jsonBeanList)); toSmallFullVideoActivity(mGson.toJson(jsonBeanList)); } } @Override public void clickRule(ModelBean bean) { //优秀作品没有显示规则 // if (mShowRuleOnClickListener != null) { // mShowRuleOnClickListener.showRuleWindow(bean.getUrl()); // } } }); } else if (holder instanceof REDFLOWERTEMPLATE1) { //单图背景左右两个按钮 ((ModelViewB) holder.itemView).setView("", "", "", "", new ModelViewB.OnClickBtnListener() { @Override public void clickLeft() { } @Override public void clickRight() { } }); } else if (holder instanceof RACETEMPLATE1) { ((ModelViewD) holder.itemView).setView((mListModelBean.get(position)).getImg(), mListModelBean.get(position), mListModelBean.get(position).getReadUserList(), new ModelViewD.OnClickBtnListener() { @Override public void clickRule(ModelBean bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRuleWindow(bean.getUrl()); } } @Override public void clickItem(ModelBean.ReadUserList bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { // CusToast.getInstance(mContext).show(bean.getExample().getTitle(), 1000); toRecordActivity(bean.getExample().getId()); } } @Override public void openRankList(ModelBean.ReadUserList bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRankListWindow(bean); } } }); } else if (holder instanceof RACETEMPLATE2) { ((ModelViewF) holder.itemView).setView((mListModelBean.get(position)).getImg(), (mListModelBean.get(position)), new ModelViewF.ModelViewFOnItemClick() { @Override public void clickItem(ModelBean.ReadUserList bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { toRecordActivity(bean.getExample().getId()); } } @Override public void clickRule(ModelBean bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRuleWindow(bean.getUrl()); } } @Override public void openRankList(ModelBean.ReadUserList bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRankListWindow(bean); } } }); } else if (holder instanceof RACETEMPLATE3) { ((ModelViewE) holder.itemView).setView(mListModelBean.get(position).getImg(), mListModelBean.get(position), new ModelViewE.onItemClickListener() { @Override public void clickItem(View view, int position, UserRecordBean bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { jsonBeanList.clear(); jsonBeanList.add(bean); toSmallFullVideoActivity(mGson.toJson(jsonBeanList)); } } @Override public void clickRule(ModelBean bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRuleWindow(bean.getUrl()); } } @Override public void clickEnter(ModelBean bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { toRecordActivity(bean.getReadUserList().get(0).getExample().getId()); } } }); } else if (holder instanceof RACETEMPLATE4) { ((ModelViewG) holder.itemView).setView((mListModelBean.get(position)).getImg(), (mListModelBean.get(position)), new ModelViewF.ModelViewFOnItemClick() { @Override public void clickItem(ModelBean.ReadUserList bean) { if (EfunboxUtil.checkLogin(mContext, holder.itemView)) { toRecordActivity(bean.getExample().getId()); } } @Override public void clickRule(ModelBean bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRuleWindow(bean.getUrl()); } } @Override public void openRankList(ModelBean.ReadUserList bean) { if (mShowRuleOnClickListener != null) { mShowRuleOnClickListener.showRankListWindow(bean); } } }); } } @Override public int getItemCount() { return mListModelBean.size(); } @Override public int getItemViewType(int position) { return position; } public void toRecordActivity(String exampleId) { Bundle bundle = new Bundle(); bundle.putString("exampleId", exampleId); Intent intent = new Intent(mContext, RecordActivity.class); intent.putExtra("params_bundle", bundle); mContext.startActivity(intent); } public void toSmallFullVideoActivity(String json) { Bundle bundle = new Bundle(); bundle.putString("index", 0 + ""); bundle.putString("dataJson", json); bundle.putString("intoPage", "EventFragment"); //数据太多了。直接传不过去,通过MMKV写一下再读一下 Intent intent = new Intent(mContext, SmallFullVideoActivity.class); intent.putExtra("params_bundle", bundle); mContext.startActivity(intent); } public interface showRuleOnClickListener { void showRuleWindow(String url); void showRankListWindow(ModelBean.ReadUserList bean); } } class NOITEM extends RecyclerView.ViewHolder { public NOITEM(@NonNull View itemView) { super(itemView); } } class IMAGETEMPLATE1 extends RecyclerView.ViewHolder { public IMAGETEMPLATE1(@NonNull View itemView) { super(itemView); ((ModelViewA) itemView).initView(); } } class EXCELLENTTEMPLATE1 extends RecyclerView.ViewHolder { public EXCELLENTTEMPLATE1(@NonNull View itemView) { super(itemView); ((ModelViewC) itemView).initView(); } } class REDFLOWERTEMPLATE1 extends RecyclerView.ViewHolder { public REDFLOWERTEMPLATE1(@NonNull View itemView) { super(itemView); ((ModelViewB) itemView).initView(); } } class RACETEMPLATE1 extends RecyclerView.ViewHolder { public RACETEMPLATE1(@NonNull View itemView) { super(itemView); ((ModelViewD) itemView).initView(); } } class RACETEMPLATE2 extends RecyclerView.ViewHolder { public RACETEMPLATE2(@NonNull View itemView) { super(itemView); ((ModelViewF) itemView).initView(); } } class RACETEMPLATE3 extends RecyclerView.ViewHolder { public RACETEMPLATE3(@NonNull View itemView) { super(itemView); ((ModelViewE) itemView).initView(); } } class RACETEMPLATE4 extends RecyclerView.ViewHolder { public RACETEMPLATE4(@NonNull View itemView) { super(itemView); ((ModelViewG) itemView).initView(); } }