|
@@ -2,53 +2,230 @@ package com.edufound.reader.adapter;
|
|
|
|
|
|
import android.annotation.SuppressLint;
|
|
|
import android.content.Context;
|
|
|
-import android.view.LayoutInflater;
|
|
|
+import android.content.Intent;
|
|
|
+import android.os.Bundle;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
-import android.widget.ImageView;
|
|
|
+import android.widget.Space;
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
|
|
-import com.edufound.reader.bean.EventListBean;
|
|
|
+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.orhanobut.logger.Logger;
|
|
|
+import com.google.gson.Gson;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
public class FragmentEventAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
|
|
|
|
|
|
|
|
private Context mContext;
|
|
|
- private List<EventListBean> mListData;
|
|
|
+ private List<ModelBean> mListModelBean;
|
|
|
+ private showRuleOnClickListener mShowRuleOnClickListener;
|
|
|
+ private Gson mGson;
|
|
|
+ List<UserRecordBean> jsonBeanList;
|
|
|
|
|
|
- public FragmentEventAdapter(Context context, List<EventListBean> listData) {
|
|
|
+ public FragmentEventAdapter(Context context, List<ModelBean> listData) {
|
|
|
mContext = context;
|
|
|
- mListData = listData;
|
|
|
+ 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 (mListData.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_1")) {
|
|
|
+
|
|
|
+ if (mListModelBean.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_1")) {
|
|
|
return new IMAGETEMPLATE1(new ModelViewA(mContext));
|
|
|
- } else if (mListData.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_2")) {
|
|
|
+ } 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 null;
|
|
|
+ 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(mListData.get(position).getImg(), new View.OnClickListener() {
|
|
|
+ //单张图片或者是单张宽图
|
|
|
+ ((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);
|
|
|
+ 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 onClick(View v) {
|
|
|
- EfunboxUtil.toWebFlowerActivity(mContext, mListData.get(position).getUrl(), String.valueOf(mListData.get(position).getId()));
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -56,13 +233,45 @@ public class FragmentEventAdapter extends RecyclerView.Adapter<RecyclerView.View
|
|
|
|
|
|
@Override
|
|
|
public int getItemCount() {
|
|
|
- return mListData.size();
|
|
|
+ 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 {
|
|
@@ -71,4 +280,56 @@ class IMAGETEMPLATE1 extends RecyclerView.ViewHolder {
|
|
|
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();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|