FragmentEventAdapter.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. package com.edufound.reader.adapter;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.Space;
  9. import androidx.annotation.NonNull;
  10. import androidx.recyclerview.widget.RecyclerView;
  11. import com.edufound.reader.activity.RecordActivity;
  12. import com.edufound.reader.activity.SmallFullVideoActivity;
  13. import com.edufound.reader.bean.ModelBean;
  14. import com.edufound.reader.bean.UserRecordBean;
  15. import com.edufound.reader.cusview.CusToast;
  16. import com.edufound.reader.cusview.ModelViewA;
  17. import com.edufound.reader.cusview.ModelViewB;
  18. import com.edufound.reader.cusview.ModelViewC;
  19. import com.edufound.reader.cusview.ModelViewD;
  20. import com.edufound.reader.cusview.ModelViewE;
  21. import com.edufound.reader.cusview.ModelViewF;
  22. import com.edufound.reader.cusview.ModelViewG;
  23. import com.edufound.reader.cusview.ModelViewWidthA;
  24. import com.edufound.reader.util.EfunboxUtil;
  25. import com.google.gson.Gson;
  26. import com.orhanobut.logger.Logger;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. public class FragmentEventAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  30. private Context mContext;
  31. private List<ModelBean> mListModelBean;
  32. private showRuleOnClickListener mShowRuleOnClickListener;
  33. private Gson mGson;
  34. List<UserRecordBean> jsonBeanList;
  35. public FragmentEventAdapter(Context context, List<ModelBean> listData) {
  36. mContext = context;
  37. mListModelBean = listData;
  38. mGson = new Gson();
  39. jsonBeanList = new ArrayList<>();
  40. }
  41. public void setShowRuleOnClickListener(showRuleOnClickListener listener) {
  42. mShowRuleOnClickListener = listener;
  43. }
  44. @NonNull
  45. @Override
  46. public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  47. if (mListModelBean.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_1")) {
  48. return new IMAGETEMPLATE1(new ModelViewA(mContext));
  49. } else if (mListModelBean.get(viewType).getTemplateCode().equals("IMAGE_TEMPLATE_2")) {
  50. return new IMAGETEMPLATE1(new ModelViewWidthA(mContext));
  51. } else if (mListModelBean.get(viewType).getTemplateCode().equals("RED_FLOWER_TEMPLATE_1")) {
  52. return new REDFLOWERTEMPLATE1(new ModelViewB(mContext));
  53. } else if (mListModelBean.get(viewType).getTemplateCode().equals("EXCELLENT_TEMPLATE_1")) {
  54. return new EXCELLENTTEMPLATE1(new ModelViewC(mContext));
  55. } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_1")) {
  56. return new RACETEMPLATE1(new ModelViewD(mContext));
  57. } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_2")) {
  58. return new RACETEMPLATE2(new ModelViewF(mContext));
  59. } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_3")) {
  60. return new RACETEMPLATE3(new ModelViewE(mContext));
  61. } else if (mListModelBean.get(viewType).getTemplateCode().equals("RACE_TEMPLATE_4")) {
  62. return new RACETEMPLATE4(new ModelViewG(mContext));
  63. }
  64. return new NOITEM(new Space(mContext));
  65. }
  66. @Override
  67. public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
  68. if (holder instanceof IMAGETEMPLATE1) {
  69. //单张图片或者是单张宽图
  70. ((ModelViewA) holder.itemView).setView(mListModelBean.get(position).getImg(), o -> {
  71. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  72. EfunboxUtil.toWebFlowerActivity(mContext, (mListModelBean.get(position)).getUrl(), String.valueOf((mListModelBean.get(position)).getId()));
  73. }
  74. });
  75. } else if (holder instanceof EXCELLENTTEMPLATE1) {
  76. //类型1优秀作品展播
  77. ((ModelViewC) holder.itemView).setView((mListModelBean.get(position)).getImg(), mListModelBean.get(position), mListModelBean.get(position).getReadUserList().get(0).getTopList());
  78. ((ModelViewC) holder.itemView).setItemClickListener(new ModelViewC.onItemClickListener() {
  79. @Override
  80. public void clickExample(ModelBean bean) {
  81. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  82. //进入官方
  83. toRecordActivity(bean.getReadUserList().get(0).getExample().getId());
  84. }
  85. }
  86. @Override
  87. public void clickItem(View view, int position, UserRecordBean bean) {
  88. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  89. //点击item
  90. jsonBeanList.clear();
  91. jsonBeanList.add(bean);
  92. Logger.e("mGson.toJson(jsonBeanList):" + mGson.toJson(jsonBeanList));
  93. toSmallFullVideoActivity(mGson.toJson(jsonBeanList));
  94. }
  95. }
  96. @Override
  97. public void clickRule(ModelBean bean) {
  98. //优秀作品没有显示规则
  99. // if (mShowRuleOnClickListener != null) {
  100. // mShowRuleOnClickListener.showRuleWindow(bean.getUrl());
  101. // }
  102. }
  103. });
  104. } else if (holder instanceof REDFLOWERTEMPLATE1) {
  105. //单图背景左右两个按钮
  106. ((ModelViewB) holder.itemView).setView("", "", "", "", new ModelViewB.OnClickBtnListener() {
  107. @Override
  108. public void clickLeft() {
  109. }
  110. @Override
  111. public void clickRight() {
  112. }
  113. });
  114. } else if (holder instanceof RACETEMPLATE1) {
  115. ((ModelViewD) holder.itemView).setView((mListModelBean.get(position)).getImg(), mListModelBean.get(position), mListModelBean.get(position).getReadUserList(), new ModelViewD.OnClickBtnListener() {
  116. @Override
  117. public void clickRule(ModelBean bean) {
  118. if (mShowRuleOnClickListener != null) {
  119. mShowRuleOnClickListener.showRuleWindow(bean.getUrl());
  120. }
  121. }
  122. @Override
  123. public void clickItem(ModelBean.ReadUserList bean) {
  124. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  125. // CusToast.getInstance(mContext).show(bean.getExample().getTitle(), 1000);
  126. toRecordActivity(bean.getExample().getId());
  127. }
  128. }
  129. @Override
  130. public void openRankList(ModelBean.ReadUserList bean) {
  131. if (mShowRuleOnClickListener != null) {
  132. mShowRuleOnClickListener.showRankListWindow(bean);
  133. }
  134. }
  135. });
  136. } else if (holder instanceof RACETEMPLATE2) {
  137. ((ModelViewF) holder.itemView).setView((mListModelBean.get(position)).getImg(), (mListModelBean.get(position)), new ModelViewF.ModelViewFOnItemClick() {
  138. @Override
  139. public void clickItem(ModelBean.ReadUserList bean) {
  140. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  141. toRecordActivity(bean.getExample().getId());
  142. }
  143. }
  144. @Override
  145. public void clickRule(ModelBean bean) {
  146. if (mShowRuleOnClickListener != null) {
  147. mShowRuleOnClickListener.showRuleWindow(bean.getUrl());
  148. }
  149. }
  150. @Override
  151. public void openRankList(ModelBean.ReadUserList bean) {
  152. if (mShowRuleOnClickListener != null) {
  153. mShowRuleOnClickListener.showRankListWindow(bean);
  154. }
  155. }
  156. });
  157. } else if (holder instanceof RACETEMPLATE3) {
  158. ((ModelViewE) holder.itemView).setView(mListModelBean.get(position).getImg(), mListModelBean.get(position), new ModelViewE.onItemClickListener() {
  159. @Override
  160. public void clickItem(View view, int position, UserRecordBean bean) {
  161. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  162. jsonBeanList.clear();
  163. jsonBeanList.add(bean);
  164. toSmallFullVideoActivity(mGson.toJson(jsonBeanList));
  165. }
  166. }
  167. @Override
  168. public void clickRule(ModelBean bean) {
  169. if (mShowRuleOnClickListener != null) {
  170. mShowRuleOnClickListener.showRuleWindow(bean.getUrl());
  171. }
  172. }
  173. @Override
  174. public void clickEnter(ModelBean bean) {
  175. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  176. toRecordActivity(bean.getReadUserList().get(0).getExample().getId());
  177. }
  178. }
  179. });
  180. } else if (holder instanceof RACETEMPLATE4) {
  181. ((ModelViewG) holder.itemView).setView((mListModelBean.get(position)).getImg(), (mListModelBean.get(position)), new ModelViewF.ModelViewFOnItemClick() {
  182. @Override
  183. public void clickItem(ModelBean.ReadUserList bean) {
  184. if (EfunboxUtil.checkLogin(mContext, holder.itemView)) {
  185. toRecordActivity(bean.getExample().getId());
  186. }
  187. }
  188. @Override
  189. public void clickRule(ModelBean bean) {
  190. if (mShowRuleOnClickListener != null) {
  191. mShowRuleOnClickListener.showRuleWindow(bean.getUrl());
  192. }
  193. }
  194. @Override
  195. public void openRankList(ModelBean.ReadUserList bean) {
  196. if (mShowRuleOnClickListener != null) {
  197. mShowRuleOnClickListener.showRankListWindow(bean);
  198. }
  199. }
  200. });
  201. }
  202. }
  203. @Override
  204. public int getItemCount() {
  205. return mListModelBean.size();
  206. }
  207. @Override
  208. public int getItemViewType(int position) {
  209. return position;
  210. }
  211. public void toRecordActivity(String exampleId) {
  212. Bundle bundle = new Bundle();
  213. bundle.putString("exampleId", exampleId);
  214. Intent intent = new Intent(mContext, RecordActivity.class);
  215. intent.putExtra("params_bundle", bundle);
  216. mContext.startActivity(intent);
  217. }
  218. public void toSmallFullVideoActivity(String json) {
  219. Bundle bundle = new Bundle();
  220. bundle.putString("index", 0 + "");
  221. bundle.putString("dataJson", json);
  222. bundle.putString("intoPage", "EventFragment");
  223. //数据太多了。直接传不过去,通过MMKV写一下再读一下
  224. Intent intent = new Intent(mContext, SmallFullVideoActivity.class);
  225. intent.putExtra("params_bundle", bundle);
  226. mContext.startActivity(intent);
  227. }
  228. public interface showRuleOnClickListener {
  229. void showRuleWindow(String url);
  230. void showRankListWindow(ModelBean.ReadUserList bean);
  231. }
  232. }
  233. class NOITEM extends RecyclerView.ViewHolder {
  234. public NOITEM(@NonNull View itemView) {
  235. super(itemView);
  236. }
  237. }
  238. class IMAGETEMPLATE1 extends RecyclerView.ViewHolder {
  239. public IMAGETEMPLATE1(@NonNull View itemView) {
  240. super(itemView);
  241. ((ModelViewA) itemView).initView();
  242. }
  243. }
  244. class EXCELLENTTEMPLATE1 extends RecyclerView.ViewHolder {
  245. public EXCELLENTTEMPLATE1(@NonNull View itemView) {
  246. super(itemView);
  247. ((ModelViewC) itemView).initView();
  248. }
  249. }
  250. class REDFLOWERTEMPLATE1 extends RecyclerView.ViewHolder {
  251. public REDFLOWERTEMPLATE1(@NonNull View itemView) {
  252. super(itemView);
  253. ((ModelViewB) itemView).initView();
  254. }
  255. }
  256. class RACETEMPLATE1 extends RecyclerView.ViewHolder {
  257. public RACETEMPLATE1(@NonNull View itemView) {
  258. super(itemView);
  259. ((ModelViewD) itemView).initView();
  260. }
  261. }
  262. class RACETEMPLATE2 extends RecyclerView.ViewHolder {
  263. public RACETEMPLATE2(@NonNull View itemView) {
  264. super(itemView);
  265. ((ModelViewF) itemView).initView();
  266. }
  267. }
  268. class RACETEMPLATE3 extends RecyclerView.ViewHolder {
  269. public RACETEMPLATE3(@NonNull View itemView) {
  270. super(itemView);
  271. ((ModelViewE) itemView).initView();
  272. }
  273. }
  274. class RACETEMPLATE4 extends RecyclerView.ViewHolder {
  275. public RACETEMPLATE4(@NonNull View itemView) {
  276. super(itemView);
  277. ((ModelViewG) itemView).initView();
  278. }
  279. }