CharacterFragment.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.edufound.reader.fragment;
  2. import android.annotation.SuppressLint;
  3. import android.graphics.Rect;
  4. import android.os.Build;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.GridLayout;
  8. import android.widget.HorizontalScrollView;
  9. import android.widget.ImageView;
  10. import android.widget.Space;
  11. import com.baidu.duer.bot.directive.payload.AmountInfo;
  12. import com.baidu.duer.botsdk.BotIntent;
  13. import com.edufound.reader.R;
  14. import com.edufound.reader.activity.SafflowerActivity;
  15. import com.edufound.reader.base.BaseMvpFragment;
  16. import com.edufound.reader.bean.UserEventEnum;
  17. import com.edufound.reader.contract.CharacterFragmentContract;
  18. import com.edufound.reader.presenter.CharacterFragmentPresenter;
  19. import com.edufound.reader.util.Consts;
  20. import com.edufound.reader.util.EfunboxUtil;
  21. import com.edufound.reader.util.GlideUtils;
  22. import com.jakewharton.rxbinding4.view.RxView;
  23. import com.jakewharton.rxbinding4.view.RxViewGroup;
  24. import com.jakewharton.rxbinding4.view.ViewGroupHierarchyChangeEvent;
  25. import com.orhanobut.logger.Logger;
  26. import java.util.HashMap;
  27. import androidx.annotation.NonNull;
  28. import androidx.annotation.RequiresApi;
  29. import io.reactivex.rxjava3.annotations.Nullable;
  30. import io.reactivex.rxjava3.functions.Consumer;
  31. public class CharacterFragment extends BaseMvpFragment<CharacterFragmentPresenter> implements CharacterFragmentContract.View {
  32. View mRootView;
  33. HorizontalScrollView mScrollView;
  34. GridLayout mGridLayout;
  35. Space mBottomView;
  36. Rect mScreenRect;
  37. boolean isNeedLoad = false;
  38. @RequiresApi(api = Build.VERSION_CODES.M)
  39. @Override
  40. protected void initView(View view) {
  41. mRootView = view;
  42. mPresenter = new CharacterFragmentPresenter(getContext());
  43. mPresenter.attachView(this);
  44. mScreenRect = new Rect(0, 0, Consts.getScreenSize()[0], Consts.getScreenSize()[1]);
  45. //初始化左侧广告UI
  46. ImageView mCharacterImage = view.findViewById(R.id.fragment_main_character_img);
  47. GlideUtils.loadImageSizeKipMemoryCache(getContext(), "http://reader-apk.ai160.com/reader-apk/res/character_image_1.png", mCharacterImage);
  48. mScrollView = view.findViewById(R.id.fragment_main_character_scrollview);
  49. mGridLayout = view.findViewById(R.id.fragment_my_recyclerview);
  50. mBottomView = view.findViewById(R.id.fragment_main_character_bottomview);
  51. addUiClick(mCharacterImage, o -> {
  52. if (EfunboxUtil.checkLogin(getActivity())) {
  53. mPresenter.getUserApi().postUserEvent(getActivity(), UserEventEnum.EVENT_INTEGRAL.getEvent());
  54. toNextActivity(SafflowerActivity.class);
  55. }
  56. });
  57. mPresenter.getExampleAll();
  58. }
  59. @Override
  60. protected int getLayoutId() {
  61. return R.layout.fragment_main_character;
  62. }
  63. @SuppressLint("AutoDispose")
  64. @RequiresApi(api = Build.VERSION_CODES.M)
  65. @Override
  66. protected void initViewListener() {
  67. RxView.scrollChangeEvents(mScrollView).subscribe(viewScrollChangeEvent -> {
  68. if (mBottomView.getLocalVisibleRect(mScreenRect)) {
  69. if (isNeedLoad) {
  70. isNeedLoad = false;
  71. mPresenter.initGridLayout(mGridLayout);
  72. }
  73. } else {
  74. isNeedLoad = true;
  75. }
  76. });
  77. }
  78. @Override
  79. public void showLoading() {
  80. }
  81. @Override
  82. public void hideLoading() {
  83. }
  84. @Override
  85. public void onError(String errMessage) {
  86. }
  87. @Override
  88. public ViewGroup getRootView() {
  89. return (ViewGroup) mRootView;
  90. }
  91. @Override
  92. public void addUiClick(View view, Consumer onNext) {
  93. addUiClickListener(view, onNext);
  94. }
  95. @Override
  96. public void getExampleAllSuccess() {
  97. mPresenter.initGridLayout(mGridLayout);
  98. }
  99. @Override
  100. public Space getBottomView() {
  101. return mBottomView;
  102. }
  103. @Override
  104. public void onDestroy() {
  105. isNeedLoad = true;
  106. mPresenter.onDestory(mGridLayout);
  107. super.onDestroy();
  108. }
  109. @Override
  110. public void onGetDisconnect() {
  111. }
  112. @Override
  113. public void onGetMobileConnect() {
  114. }
  115. @Override
  116. public void onGetWifiConnect() {
  117. }
  118. @Override
  119. public void onDestroyView() {
  120. super.onDestroyView();
  121. mPresenter.onDestory(mGridLayout);
  122. }
  123. }