MyTabFragment.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. package com.edufound.reader.fragment;
  2. import android.annotation.SuppressLint;
  3. import android.graphics.Rect;
  4. import android.os.Build;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.FrameLayout;
  9. import android.widget.GridLayout;
  10. import android.widget.HorizontalScrollView;
  11. import android.widget.ImageView;
  12. import android.widget.Space;
  13. import android.widget.TextView;
  14. import android.widget.Toast;
  15. import com.baidu.duer.bot.directive.payload.AmountInfo;
  16. import com.baidu.duer.botsdk.BotIntent;
  17. import com.edufound.reader.R;
  18. import com.edufound.reader.activity.CustomerServiceActivity;
  19. import com.edufound.reader.activity.MessageActivity;
  20. import com.edufound.reader.activity.MyCollectionActivity;
  21. import com.edufound.reader.activity.MyFollowActivity;
  22. import com.edufound.reader.activity.PayActivity;
  23. import com.edufound.reader.activity.SafflowerActivity;
  24. import com.edufound.reader.activity.UserInfoSettingActivity;
  25. import com.edufound.reader.base.BaseMvpFragment;
  26. import com.edufound.reader.bean.MyInfoBean;
  27. import com.edufound.reader.bean.UserRecordBean;
  28. import com.edufound.reader.botsdk.BotRegisterListener;
  29. import com.edufound.reader.contract.MyTabFragmentContract;
  30. import com.edufound.reader.presenter.MyTabFragmentPresenter;
  31. import com.edufound.reader.util.Consts;
  32. import com.edufound.reader.util.EfunboxUtil;
  33. import com.edufound.reader.util.GlideUtils;
  34. import com.jakewharton.rxbinding4.view.RxView;
  35. import com.orhanobut.logger.Logger;
  36. import java.util.HashMap;
  37. import androidx.annotation.NonNull;
  38. import androidx.annotation.RequiresApi;
  39. import io.reactivex.rxjava3.annotations.Nullable;
  40. import io.reactivex.rxjava3.functions.Consumer;
  41. public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> implements MyTabFragmentContract.View {
  42. View mRootView;
  43. HorizontalScrollView mScrollView;
  44. GridLayout mGridLayout;
  45. FrameLayout mNoRecordLayout;
  46. ImageView mHeaderUserImg;
  47. ImageView mHeadUserSetting;
  48. TextView mHeadUserPhone;
  49. TextView mHeadUserGrade;
  50. TextView mHeadUserFans;
  51. TextView mHeadUserPlayCount;
  52. FrameLayout mHeadUserVip;
  53. FrameLayout mHeadUserRedFlower;
  54. ImageView mHeadUserMyAttention;
  55. ImageView mHeadUserMyCollection;
  56. FrameLayout mUserLayout;
  57. FrameLayout mHeadUserMessage;
  58. ImageView mHeadUserCustomerService;
  59. TextView mRecordSize;
  60. ImageView mUnReadIcon;
  61. TextView mFlowerCount;
  62. TextView mOverDate;
  63. Space mBottomView;
  64. Rect mScreenRect;
  65. boolean isNeedLoad = true;
  66. @Override
  67. protected void initView(View view) {
  68. mPresenter = new MyTabFragmentPresenter(getContext());
  69. mPresenter.attachView(this);
  70. mRootView = view;
  71. mScrollView = view.findViewById(R.id.fragment_main_user_scrollview);
  72. mBottomView = view.findViewById(R.id.fragment_main_user_bottomview);
  73. mRecordSize = view.findViewById(R.id.fragment_main_user_myrecordsize);
  74. mScreenRect = new Rect(0, 0, Consts.getScreenSize()[0], Consts.getScreenSize()[1]);
  75. //初始化左侧header ui
  76. FrameLayout headlayout = view.findViewById(R.id.fragment_main_user_head_layout);
  77. mHeaderUserImg = headlayout.findViewById(R.id.fragment_main_user_head);
  78. mHeadUserSetting = headlayout.findViewById(R.id.fragment_main_user_setting);
  79. mHeadUserPhone = headlayout.findViewById(R.id.fragment_main_user_phonenum);
  80. mHeadUserGrade = headlayout.findViewById(R.id.fragment_main_user_grade);
  81. mHeadUserFans = headlayout.findViewById(R.id.fragment_main_user_fans);
  82. mHeadUserPlayCount = headlayout.findViewById(R.id.fragment_main_user_playcount);
  83. mHeadUserVip = headlayout.findViewById(R.id.fragment_main_user_vip);
  84. mOverDate = headlayout.findViewById(R.id.fragment_main_user_vip_date);
  85. mHeadUserRedFlower = headlayout.findViewById(R.id.fragment_main_user_redflower);
  86. mHeadUserMyAttention = headlayout.findViewById(R.id.fragment_main_user_myattention);
  87. mHeadUserMyCollection = headlayout.findViewById(R.id.fragment_main_user_mycollection);
  88. mHeadUserMessage = headlayout.findViewById(R.id.fragment_main_user_messagenotification);
  89. mHeadUserCustomerService = headlayout.findViewById(R.id.fragment_main_user_customerservice);
  90. mUnReadIcon = view.findViewById(R.id.fragment_main_user_unread_icon);
  91. mUserLayout = view.findViewById(R.id.fragment_main_user_layout);
  92. mGridLayout = view.findViewById(R.id.fragment_my_recyclerview);
  93. mNoRecordLayout = view.findViewById(R.id.fragment_main_user_norecord);
  94. mFlowerCount = view.findViewById(R.id.fragment_main_user_redflower_text);
  95. mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
  96. mPresenter.getMyInfo();
  97. mPresenter.getMyRecords();
  98. // mPresenter.getIsBuy();
  99. mPresenter.getAuth();
  100. }
  101. @Override
  102. protected int getLayoutId() {
  103. return R.layout.fragment_main_user;
  104. }
  105. @SuppressLint("AutoDispose")
  106. @RequiresApi(api = Build.VERSION_CODES.M)
  107. @Override
  108. protected void initViewListener() {
  109. RxView.scrollChangeEvents(mScrollView).subscribe(viewScrollChangeEvent -> {
  110. loadMoreItem();
  111. });
  112. // RxViewGroup.changeEvents(mGridLayout).subscribe(viewGroupHierarchyChangeEvent -> {
  113. // loadMoreItem();
  114. // });
  115. // Observable observable = RxView.clicks(mHeadUserSetting).share();
  116. // observable.buffer(observable.debounce(200, TimeUnit.MILLISECONDS).compose(bindUntilEvent(new Observable<ActivityEvent>() {
  117. // @Override
  118. // protected void subscribeActual(@NonNull Observer<? super ActivityEvent> observer) {
  119. // Logger.e("subscribeActual--subscribeActual--subscribeActual");
  120. // }
  121. // }, ActivityEvent.STOP)))
  122. // .subscribe(list -> {
  123. // Logger.e("iv3连续点击次数:" + list.size());
  124. // });//这里的时间指的是任意两次点击最长间隔时间);
  125. // addUiClick(mHeadUserSetting, o -> {
  126. // Toast.makeText(getActivity(), "click 设置", Toast.LENGTH_SHORT).show();
  127. // });
  128. addUiClick(mHeadUserVip, o -> {
  129. Toast.makeText(getActivity(), "click vip", Toast.LENGTH_SHORT).show();
  130. // toNextActivity(PayActivity.class);
  131. BotRegisterListener.payBaiDuVip();
  132. });
  133. addUiClick(mHeadUserRedFlower, o -> {
  134. Toast.makeText(getActivity(), "click 小红花", Toast.LENGTH_SHORT).show();
  135. toNextActivity(SafflowerActivity.class);
  136. });
  137. addUiClick(mHeadUserMyAttention, o -> {
  138. Toast.makeText(getActivity(), "click 我的关注", Toast.LENGTH_SHORT).show();
  139. toNextActivity(MyFollowActivity.class);
  140. });
  141. addUiClick(mHeadUserMyCollection, o -> {
  142. Toast.makeText(getActivity(), "click 我的收藏", Toast.LENGTH_SHORT).show();
  143. toNextActivity(MyCollectionActivity.class);
  144. });
  145. addUiClick(mHeadUserMessage, o -> {
  146. Toast.makeText(getActivity(), "click 消息通知", Toast.LENGTH_SHORT).show();
  147. toNextActivity(MessageActivity.class);
  148. });
  149. addUiClick(mHeadUserCustomerService, o -> {
  150. Toast.makeText(getActivity(), "click 联系客服", Toast.LENGTH_SHORT).show();
  151. toNextActivity(CustomerServiceActivity.class);
  152. });
  153. addUiClick(mUserLayout, o -> {
  154. Bundle bundle = new Bundle();
  155. bundle.putString("index", "123123123");
  156. toNextActivity(UserInfoSettingActivity.class, bundle);
  157. });
  158. }
  159. @Override
  160. public void showLoading() {
  161. }
  162. @Override
  163. public void hideLoading() {
  164. }
  165. @Override
  166. public void onError(String errMessage) {
  167. }
  168. @Override
  169. public ViewGroup getRootView() {
  170. return (ViewGroup) mRootView;
  171. }
  172. @Override
  173. public void addUiClick(View view, Consumer onNext) {
  174. addUiClickListener(view, onNext);
  175. }
  176. @Override
  177. public void setUserInfo(MyInfoBean bean) {
  178. if (bean.getUser().getAvatar() == null || bean.getUser().getAvatar().equals("")) {
  179. if (bean.getUser().getGender().equals("1")) {
  180. //男孩
  181. mHeaderUserImg.setImageResource(R.drawable.activity_userinfo_setting_boy);
  182. } else if (bean.getUser().getGender().equals("0")) {
  183. //女孩
  184. mHeaderUserImg.setImageResource(R.drawable.activity_userinfo_setting_girl);
  185. }
  186. } else {
  187. GlideUtils.loadCircleImage(getContext(), bean.getUser().getAvatar(), mHeaderUserImg);
  188. }
  189. mHeadUserPhone.setText(bean.getUser().getNickName());
  190. mHeadUserGrade.setText(EfunboxUtil.getCNGradeByEnum(bean.getUser().getGrade()));
  191. mHeadUserFans.setText(String.valueOf(bean.getFansAmount()));
  192. mHeadUserPlayCount.setText(String.valueOf(bean.getPlayAmount()));
  193. mFlowerCount.setText(String.valueOf(bean.getIntegralAmount()));
  194. if (Integer.valueOf(bean.getUnreadAmount()) <= 0) {
  195. mUnReadIcon.setVisibility(View.INVISIBLE);
  196. }
  197. }
  198. @Override
  199. public void setRecordSize(int size) {
  200. mRecordSize.setText("我的作品:" + size);
  201. }
  202. @Override
  203. public void onDestroy() {
  204. // isNeedLoad = true;
  205. // mPresenter.onDestory(mGridLayout);
  206. super.onDestroy();
  207. }
  208. @Override
  209. public void onGetDisconnect() {
  210. }
  211. @Override
  212. public void onGetMobileConnect() {
  213. }
  214. @Override
  215. public void onGetWifiConnect() {
  216. }
  217. @Override
  218. public void onDestroyView() {
  219. isNeedLoad = true;
  220. mPresenter.onDestory(mGridLayout);
  221. super.onDestroyView();
  222. }
  223. @Override
  224. public void loadMoreItem() {
  225. if (mBottomView.getLocalVisibleRect(mScreenRect) || mGridLayout.getChildCount() <= 2) {
  226. if (isNeedLoad) {
  227. isNeedLoad = false;
  228. mPresenter.setGridData(mGridLayout, mNoRecordLayout);
  229. }
  230. } else {
  231. isNeedLoad = true;
  232. }
  233. }
  234. @Override
  235. public void getIsBuySuccess(String date) {
  236. if (date == null || date.equals("")) {
  237. mHeadUserVip.setBackgroundResource(R.drawable.fragment_my_vip);
  238. mOverDate.setVisibility(View.GONE);
  239. } else {
  240. mHeadUserVip.setBackgroundResource(R.drawable.fragment_my_vip_renew);
  241. mOverDate.setVisibility(View.VISIBLE);
  242. mOverDate.setText("到期时间:" + date);
  243. }
  244. }
  245. }