OthersRecordActivity.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package com.edufound.reader.activity;
  2. import android.annotation.SuppressLint;
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.graphics.Rect;
  6. import android.os.Build;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.widget.CompoundButton;
  10. import android.widget.FrameLayout;
  11. import android.widget.GridLayout;
  12. import android.widget.HorizontalScrollView;
  13. import android.widget.ImageView;
  14. import android.widget.Space;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17. import com.baidu.duer.bot.directive.payload.AmountInfo;
  18. import com.baidu.duer.botsdk.BotIntent;
  19. import com.edufound.reader.R;
  20. import com.edufound.reader.annotation.BindView;
  21. import com.edufound.reader.base.BaseMvpActivity;
  22. import com.edufound.reader.bean.MyInfoBean;
  23. import com.edufound.reader.bean.UserBean;
  24. import com.edufound.reader.contract.OthersRecordContract;
  25. import com.edufound.reader.model.MyFollowModel;
  26. import com.edufound.reader.presenter.OthersRecordPresenter;
  27. import com.edufound.reader.receiver.BackPageReceiver;
  28. import com.edufound.reader.util.Consts;
  29. import com.edufound.reader.util.GlideUtils;
  30. import com.jakewharton.rxbinding4.view.RxView;
  31. import com.jakewharton.rxbinding4.widget.RxCompoundButton;
  32. import com.orhanobut.logger.Logger;
  33. import java.util.HashMap;
  34. import androidx.annotation.NonNull;
  35. import androidx.annotation.RequiresApi;
  36. import androidx.appcompat.widget.AppCompatCheckBox;
  37. import io.reactivex.rxjava3.annotations.Nullable;
  38. import io.reactivex.rxjava3.functions.Consumer;
  39. public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter> implements OthersRecordContract.View {
  40. Activity mActivity;
  41. @BindView(id = R.id.activity_otherrecord_gridlayout)
  42. GridLayout mGridLayout;
  43. @BindView(id = R.id.activity_otherrecord_norecord)
  44. FrameLayout mNoRecordLayout;
  45. @BindView(id = R.id.activity_otherrecord_bottomview)
  46. Space mBottomView;
  47. @BindView(id = R.id.activity_otherrecord_scroll)
  48. HorizontalScrollView mScrollView;
  49. @BindView(id = R.id.activity_otherrecord_back)
  50. ImageView mBack;
  51. @BindView(id = R.id.activity_otherrecord_userhead)
  52. ImageView mUserHead;
  53. @BindView(id = R.id.activity_otherrecord_isfans_img)
  54. ImageView mIsFansCheckBox;
  55. @BindView(id = R.id.activity_otherrecord_fans_count)
  56. TextView mFansCount;
  57. @BindView(id = R.id.activity_otherrecord_flower_count)
  58. TextView mFlowerCount;
  59. @BindView(id = R.id.activity_otherrecord_look_count)
  60. TextView mPlayCount;
  61. @BindView(id = R.id.activity_otherrecord_allcount)
  62. TextView mAllCount;
  63. @BindView(id = R.id.activity_otherrecord_username)
  64. TextView mUserName;
  65. Rect mScreenRect;
  66. boolean isNeedLoad = true;
  67. String mOtherId = null;
  68. String intoPage = null;
  69. boolean isRemoveFollow = false;
  70. @Override
  71. public int getLayoutId() {
  72. return R.layout.activity_otherrecord;
  73. }
  74. @SuppressLint("AutoDispose")
  75. @RequiresApi(api = Build.VERSION_CODES.M)
  76. @Override
  77. public void initView() {
  78. mActivity = this;
  79. mPresenter = new OthersRecordPresenter();
  80. mPresenter.attachView(this);
  81. mScreenRect = new Rect(0, 0, Consts.getScreenSize()[0], Consts.getScreenSize()[1]);
  82. RxView.scrollChangeEvents(mScrollView).subscribe(viewScrollChangeEvent -> {
  83. loadMoreItem();
  84. });
  85. addUiClick(mBack, o -> {
  86. if (intoPage.equals("MyFollowActivity")) {
  87. Intent i = new Intent();
  88. i.putExtra("isRemove", isRemoveFollow);
  89. setResult(MyFollowModel.OTHERPAGE_BACK, i);
  90. }
  91. mActivity.finish();
  92. });
  93. Bundle params = getIntent().getBundleExtra("params_bundle");
  94. intoPage = params.getString("intoPage", "default");
  95. mOtherId = params.getString("other_uid");
  96. mPresenter.setBackRecordId(params.getString("record_id"));
  97. mPresenter.getOtherRecordList(mOtherId);
  98. }
  99. @Override
  100. public void onGetDisconnect() {
  101. }
  102. @Override
  103. public void onGetMobileConnect() {
  104. }
  105. @Override
  106. public void onGetWifiConnect() {
  107. }
  108. @Override
  109. public void showLoading() {
  110. }
  111. @Override
  112. public void hideLoading() {
  113. }
  114. @Override
  115. public void onError(String errMessage) {
  116. }
  117. @Override
  118. public Activity getActivity() {
  119. return mActivity;
  120. }
  121. @Override
  122. public void addUiClick(View view, Consumer onNext) {
  123. addUiClickListener(view, onNext);
  124. }
  125. @Override
  126. protected void onDestroy() {
  127. isNeedLoad = true;
  128. if (intoPage.equals("RecommendFragment")) {
  129. mPresenter.sendBackReceiver(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
  130. } else if (intoPage.equals("MyFollowActivity")) {
  131. //我的关注所有人页面进入不需要发送广播,但是要告诉是不是有删除
  132. } else if (intoPage.equals("default")) {
  133. }
  134. mPresenter.onDestory(mGridLayout);
  135. super.onDestroy();
  136. }
  137. @Override
  138. public void loadMoreItem() {
  139. if (mBottomView.getLocalVisibleRect(mScreenRect) || mGridLayout.getChildCount() <= 2) {
  140. if (isNeedLoad) {
  141. isNeedLoad = false;
  142. mPresenter.setGridData(mGridLayout, mNoRecordLayout);
  143. }
  144. } else {
  145. isNeedLoad = true;
  146. }
  147. }
  148. @Override
  149. protected void onResume() {
  150. super.onResume();
  151. mPresenter.getOtherUserInfo(mOtherId);
  152. }
  153. @Override
  154. public void getOtherRecordSuccess() {
  155. mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
  156. }
  157. @SuppressLint("AutoDispose")
  158. @Override
  159. public void setLeftUserInfo(MyInfoBean info) {
  160. mAllCount.setText(String.valueOf("作品:" + info.getReadAmount()));
  161. if (info.getUser().getAvatar() == null || info.getUser().getAvatar().equals("")) {
  162. if (info.getUser().getGender().equals("1")) {
  163. //男
  164. GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_boy, mUserHead);
  165. } else {
  166. GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_girl, mUserHead);
  167. }
  168. } else {
  169. GlideUtils.loadCircleImage(getActivity(), info.getUser().getAvatar(), mUserHead);
  170. }
  171. mFansCount.setText(String.valueOf(info.getFansAmount()));
  172. mFlowerCount.setText(String.valueOf(info.getIntegralAmount()));
  173. mPlayCount.setText(String.valueOf(info.getPlayAmount()));
  174. if (info.getUser().getNickName().length() > 6) {
  175. mUserName.setText(info.getUser().getNickName().substring(0, 6) + "...");
  176. } else {
  177. mUserName.setText(info.getUser().getNickName());
  178. }
  179. Logger.e("mUserName:" + mUserName.getText().toString());
  180. doFollowSuccess(info.getLike());
  181. if (info.getUser().getUid().equals(Consts.getUID()) || info.getUser().getProfession().equals("官方")) {
  182. //是自己
  183. mIsFansCheckBox.setVisibility(View.INVISIBLE);
  184. } else {
  185. addUiClick(mIsFansCheckBox, o -> {
  186. mPresenter.doFollow(info.getUser().getUid());
  187. });
  188. }
  189. }
  190. @Override
  191. public void doFollowSuccess(boolean isfollow) {
  192. isRemoveFollow = !isfollow;
  193. if (isfollow) {
  194. mIsFansCheckBox.setImageResource(R.drawable.activity_otherrecord_isfans_true);
  195. } else {
  196. mIsFansCheckBox.setImageResource(R.drawable.activity_otherrecord_isfans_false);
  197. }
  198. }
  199. }