MainFragment.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. package com.emato.ich.fragment;
  2. import android.os.Bundle;
  3. import com.bumptech.glide.Glide;
  4. import com.bumptech.glide.load.engine.DiskCacheStrategy;
  5. import com.emato.ich.entity.BzCabBizCfg;
  6. import com.emato.ich.enums.TakeButtonShowEnum;
  7. import com.emato.ich.enums.TakeQrCodeShowEnum;
  8. import com.emato.ich.utils.JacksonUtils;
  9. import com.emato.ich.utils.Log;
  10. import android.os.CountDownTimer;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14. import android.widget.ImageView;
  15. import android.widget.TextView;
  16. import androidx.annotation.NonNull;
  17. import androidx.fragment.app.Fragment;
  18. import com.emato.ich.MainActivity;
  19. import com.emato.ich.R;
  20. import com.emato.ich.contant.SystemConfigConstant;
  21. import com.emato.ich.databinding.FragmentMainBinding;
  22. import com.emato.ich.utils.ButtonUtils;
  23. import com.emato.ich.utils.LoggingUtils;
  24. import com.emato.ich.utils.NavUtils;
  25. import com.emato.ich.utils.StringUtils;
  26. import com.emato.ich.utils.TimeOutUtils;
  27. import com.fasterxml.jackson.core.JsonProcessingException;
  28. import com.fasterxml.jackson.core.type.TypeReference;
  29. import com.fasterxml.jackson.databind.ObjectMapper;
  30. import com.hacknife.carouselbanner.CarouselBanner;
  31. import org.jetbrains.annotations.NotNull;
  32. import java.util.ArrayList;
  33. import java.util.List;
  34. import java.util.Objects;
  35. /**
  36. * 主页
  37. */
  38. public class MainFragment extends Fragment {
  39. private static final String TAG = MainFragment.class.getName();
  40. private FragmentMainBinding binding;
  41. private long start;
  42. CarouselBanner banner;
  43. private CountDownTimer timer;
  44. @Override
  45. public View onCreateView(
  46. @NotNull LayoutInflater inflater, ViewGroup container,
  47. Bundle savedInstanceState
  48. ) {
  49. start = System.currentTimeMillis();
  50. binding = FragmentMainBinding.inflate(inflater, container, false);
  51. return binding.getRoot();
  52. }
  53. public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
  54. long end = System.currentTimeMillis();
  55. Log.i(TAG, TAG + "页面渲染速度为" + (end - start) + "ms。");
  56. MainActivity activity = ((MainActivity) getActivity());
  57. try {
  58. timer = TimeOutUtils.timeout(activity, MainFragment.this, binding.timeout, 20);
  59. timer.start();
  60. } catch (Exception e) {
  61. Log.e(TAG, "onViewCreated: 倒计时出现异常! ", e);
  62. LoggingUtils.sendErrorLog("业务异常: 取件码输入页面倒计时出现异常! ", e);
  63. }
  64. super.onViewCreated(view, savedInstanceState);
  65. String url = activity.getConfigMap().get(SystemConfigConstant.cabinet_take_object_qrcode_url);
  66. String takeQrCodeShow = activity.getConfigMap().get(SystemConfigConstant.take_qr_code_show);
  67. String takeButtonShow = activity.getConfigMap().get(SystemConfigConstant.take_button_show);
  68. // 取件二维码不展示 取件码取件展示
  69. if (TakeQrCodeShowEnum.item_1.getItem().equals(takeQrCodeShow) && !TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
  70. view.findViewById(R.id.fast_take_send).setVisibility(View.GONE);
  71. view.findViewById(R.id.fast_take_send_background).setVisibility(View.GONE);
  72. view.findViewById(R.id.take_btn).setVisibility(View.VISIBLE);
  73. try {
  74. ImageView sendBtn = view.findViewById(R.id.send_btn);
  75. ViewGroup.LayoutParams layoutParams = sendBtn.getLayoutParams();
  76. layoutParams.width = 1020; // 设置宽度为200像素
  77. sendBtn.setLayoutParams(layoutParams);
  78. Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y2aAfNr4AAB2NW7s_cU101.png")
  79. .skipMemoryCache(true)//跳过内存缓存
  80. .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
  81. .into(sendBtn);
  82. ImageView takeBtn = view.findViewById(R.id.take_btn);
  83. ViewGroup.LayoutParams takeBtnLayoutParams = takeBtn.getLayoutParams();
  84. takeBtnLayoutParams.width = 1020; // 设置宽度为200像素
  85. takeBtn.setLayoutParams(takeBtnLayoutParams);
  86. Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y0eAN88zAACNFgq1OjE237.png")
  87. .skipMemoryCache(true)//跳过内存缓存
  88. .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
  89. .into(takeBtn);
  90. ImageView delivererBtnView = view.findViewById(R.id.deliverer_btn);
  91. ViewGroup.LayoutParams delivererBtnLayoutParams = delivererBtnView.getLayoutParams();
  92. delivererBtnLayoutParams.width = 1020; // 设置宽度为400像素
  93. delivererBtnView.setLayoutParams(delivererBtnLayoutParams);
  94. Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y1mAXz1xAAA0htZRbz4789.png")
  95. .skipMemoryCache(true)//跳过内存缓存
  96. .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
  97. .into(delivererBtnView);
  98. } catch (Exception e) {
  99. Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
  100. LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
  101. }
  102. view.findViewById(R.id.take_btn).setTranslationX(-537);
  103. view.findViewById(R.id.send_btn).setTranslationX(-537);
  104. view.findViewById(R.id.deliverer_btn).setTranslationX(-537);
  105. view.findViewById(R.id.take_btn).requestLayout();
  106. view.findViewById(R.id.send_btn).requestLayout();
  107. view.findViewById(R.id.deliverer_btn).requestLayout();
  108. }else if (!TakeQrCodeShowEnum.item_1.getItem().equals(takeQrCodeShow) && TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
  109. // 取件二维码展示 取件码取件不展示
  110. try {
  111. ImageView sendbtn = view.findViewById(R.id.send_btn);
  112. ViewGroup.LayoutParams layoutParams = sendbtn.getLayoutParams();
  113. layoutParams.height = 666; // 设置高度为300像素
  114. sendbtn.setLayoutParams(layoutParams);
  115. Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_yyOAQrj9AAB2pLRKDUA329.png")
  116. .skipMemoryCache(true)//跳过内存缓存
  117. .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
  118. .into(sendbtn);
  119. } catch (Exception e) {
  120. Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
  121. LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
  122. }
  123. view.findViewById(R.id.fast_take_send).setVisibility(View.VISIBLE);
  124. view.findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
  125. view.findViewById(R.id.take_btn).setVisibility(View.GONE);
  126. view.findViewById(R.id.send_btn).setTranslationY(-12);
  127. }else {
  128. // 取件二维码展示 取件码取件展示 不存在这个
  129. view.findViewById(R.id.fast_take_send).setVisibility(View.VISIBLE);
  130. view.findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
  131. view.findViewById(R.id.take_btn).setVisibility(View.VISIBLE);
  132. }
  133. if (getActivity() != null && activity.getConfigMap().size() > 0 && !StringUtils.isNullOrEmpty(url)) {
  134. try {
  135. ImageView imageView = view.findViewById(R.id.fast_take_send);
  136. Glide.with(view).load(url)
  137. .skipMemoryCache(true)//跳过内存缓存
  138. .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
  139. .into(imageView);
  140. } catch (Exception e) {
  141. Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
  142. LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
  143. }
  144. }
  145. // 取出缓存 重新加载图片
  146. // 获取轮播图数组字符串
  147. String cabImgListStr = activity.getConfigMap().get(SystemConfigConstant.CAB_IMG_LIST);
  148. // 转为 List
  149. List<String> cabImgList = new ArrayList<>();
  150. ObjectMapper objectMapper = JacksonUtils.objectmapper;
  151. if(cabImgListStr != null){
  152. try {
  153. cabImgList = objectMapper.readValue(cabImgListStr, new TypeReference<List<String>>() {
  154. });
  155. } catch (JsonProcessingException e) {
  156. Log.e(TAG, "获取轮播图异常: Glide设置图片异常! ", e);
  157. LoggingUtils.sendErrorLog("业务异常: 获取缓存轮播图异常: Glide设置轮播图失败! ", e);
  158. }
  159. banner = view.findViewById(R.id.banner);
  160. if(!cabImgList.isEmpty() && cabImgList.size() > 0){
  161. banner.initBanner(cabImgList);
  162. }else {
  163. Log.e(TAG, "轮播图为空!: Glide设置图片异常! ");
  164. LoggingUtils.sendErrorLog("轮播图为空!: Glide设置轮播图失败! ",null);
  165. }
  166. }
  167. Bundle bundle = new Bundle();
  168. // 我要寄快递页面跳转
  169. binding.sendBtn.setOnClickListener(view12 -> {
  170. if (ButtonUtils.isFastClick()) {
  171. return;
  172. }
  173. bundle.putString("pageType","expressDelivery");
  174. activity.getBundleMap().put(MainFragment.class.getName(), bundle);
  175. if (null != timer) {
  176. timer.cancel();
  177. }
  178. NavUtils.navigate(this, R.id.action_mainFragment_to_chooseCabinetFragment);
  179. });
  180. // 取件页面跳转 德合隐藏
  181. binding.takeBtn.setOnClickListener(view1 -> {
  182. if (ButtonUtils.isFastClick()) {
  183. return;
  184. }
  185. if (null != timer) {
  186. timer.cancel();
  187. }
  188. NavUtils.navigate(this, R.id.action_mainFragment_to_takeFragment);
  189. });
  190. // 派件员页面跳转
  191. binding.delivererBtn.setOnClickListener(view1 -> {
  192. if (ButtonUtils.isFastClick()) {
  193. return;
  194. }
  195. bundle.putString("pageType","collectMaterials");
  196. activity.getBundleMap().put(MainFragment.class.getName(), bundle);
  197. if (null != timer) {
  198. timer.cancel();
  199. }
  200. NavUtils.navigate(this, R.id.action_mainFragment_to_courier_fragment);
  201. });
  202. }
  203. @Override
  204. public void onDestroyView() {
  205. super.onDestroyView();
  206. binding = null;
  207. Log.i(TAG, TAG + "被销毁。。。");
  208. }
  209. }