123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- package com.edufound.reader.activity;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Rect;
- import android.os.Build;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.CompoundButton;
- import android.widget.FrameLayout;
- import android.widget.GridLayout;
- import android.widget.HorizontalScrollView;
- import android.widget.ImageView;
- import android.widget.Space;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.baidu.duer.bot.directive.payload.AmountInfo;
- import com.baidu.duer.botsdk.BotIntent;
- import com.edufound.reader.R;
- import com.edufound.reader.annotation.BindView;
- import com.edufound.reader.base.BaseMvpActivity;
- import com.edufound.reader.bean.MyInfoBean;
- import com.edufound.reader.bean.UserBean;
- import com.edufound.reader.contract.OthersRecordContract;
- import com.edufound.reader.model.MyFollowModel;
- import com.edufound.reader.presenter.OthersRecordPresenter;
- import com.edufound.reader.receiver.BackPageReceiver;
- import com.edufound.reader.util.Consts;
- import com.edufound.reader.util.GlideUtils;
- import com.jakewharton.rxbinding4.view.RxView;
- import com.jakewharton.rxbinding4.widget.RxCompoundButton;
- import com.orhanobut.logger.Logger;
- import java.util.HashMap;
- import androidx.annotation.NonNull;
- import androidx.annotation.RequiresApi;
- import androidx.appcompat.widget.AppCompatCheckBox;
- import io.reactivex.rxjava3.annotations.Nullable;
- import io.reactivex.rxjava3.functions.Consumer;
- public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter> implements OthersRecordContract.View {
- Activity mActivity;
- @BindView(id = R.id.activity_otherrecord_gridlayout)
- GridLayout mGridLayout;
- @BindView(id = R.id.activity_otherrecord_norecord)
- FrameLayout mNoRecordLayout;
- @BindView(id = R.id.activity_otherrecord_bottomview)
- Space mBottomView;
- @BindView(id = R.id.activity_otherrecord_scroll)
- HorizontalScrollView mScrollView;
- @BindView(id = R.id.activity_otherrecord_back)
- ImageView mBack;
- @BindView(id = R.id.activity_otherrecord_userhead)
- ImageView mUserHead;
- @BindView(id = R.id.activity_otherrecord_isfans_img)
- ImageView mIsFansCheckBox;
- @BindView(id = R.id.activity_otherrecord_fans_count)
- TextView mFansCount;
- @BindView(id = R.id.activity_otherrecord_flower_count)
- TextView mFlowerCount;
- @BindView(id = R.id.activity_otherrecord_look_count)
- TextView mPlayCount;
- @BindView(id = R.id.activity_otherrecord_allcount)
- TextView mAllCount;
- @BindView(id = R.id.activity_otherrecord_username)
- TextView mUserName;
- Rect mScreenRect;
- boolean isNeedLoad = true;
- String mOtherId = null;
- String intoPage = null;
- boolean isRemoveFollow = false;
- @Override
- public int getLayoutId() {
- return R.layout.activity_otherrecord;
- }
- @SuppressLint("AutoDispose")
- @RequiresApi(api = Build.VERSION_CODES.M)
- @Override
- public void initView() {
- mActivity = this;
- mPresenter = new OthersRecordPresenter();
- mPresenter.attachView(this);
- mScreenRect = new Rect(0, 0, Consts.getScreenSize()[0], Consts.getScreenSize()[1]);
- RxView.scrollChangeEvents(mScrollView).subscribe(viewScrollChangeEvent -> {
- loadMoreItem();
- });
- addUiClick(mBack, o -> {
- if (intoPage.equals("MyFollowActivity")) {
- Intent i = new Intent();
- i.putExtra("isRemove", isRemoveFollow);
- setResult(MyFollowModel.OTHERPAGE_BACK, i);
- }
- mActivity.finish();
- });
- Bundle params = getIntent().getBundleExtra("params_bundle");
- intoPage = params.getString("intoPage", "default");
- mOtherId = params.getString("other_uid");
- mPresenter.setBackRecordId(params.getString("record_id"));
- mPresenter.getOtherRecordList(mOtherId);
- }
- @Override
- public void onGetDisconnect() {
- }
- @Override
- public void onGetMobileConnect() {
- }
- @Override
- public void onGetWifiConnect() {
- }
- @Override
- public void showLoading() {
- }
- @Override
- public void hideLoading() {
- }
- @Override
- public void onError(String errMessage) {
- }
- @Override
- public Activity getActivity() {
- return mActivity;
- }
- @Override
- public void addUiClick(View view, Consumer onNext) {
- addUiClickListener(view, onNext);
- }
- @Override
- protected void onDestroy() {
- isNeedLoad = true;
- if (intoPage.equals("RecommendFragment")) {
- mPresenter.sendBackReceiver(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
- } else if (intoPage.equals("MyFollowActivity")) {
- //我的关注所有人页面进入不需要发送广播,但是要告诉是不是有删除
- } else if (intoPage.equals("default")) {
- }
- mPresenter.onDestory(mGridLayout);
- super.onDestroy();
- }
- @Override
- public void loadMoreItem() {
- if (mBottomView.getLocalVisibleRect(mScreenRect) || mGridLayout.getChildCount() <= 2) {
- if (isNeedLoad) {
- isNeedLoad = false;
- mPresenter.setGridData(mGridLayout, mNoRecordLayout);
- }
- } else {
- isNeedLoad = true;
- }
- }
- @Override
- protected void onResume() {
- super.onResume();
- mPresenter.getOtherUserInfo(mOtherId);
- }
- @Override
- public void getOtherRecordSuccess() {
- mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
- }
- @SuppressLint("AutoDispose")
- @Override
- public void setLeftUserInfo(MyInfoBean info) {
- mAllCount.setText(String.valueOf("作品:" + info.getReadAmount()));
- if (info.getUser().getAvatar() == null || info.getUser().getAvatar().equals("")) {
- if (info.getUser().getGender().equals("1")) {
- //男
- GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_boy, mUserHead);
- } else {
- GlideUtils.loadCircleImage(getActivity(), R.drawable.activity_userinfo_setting_girl, mUserHead);
- }
- } else {
- GlideUtils.loadCircleImage(getActivity(), info.getUser().getAvatar(), mUserHead);
- }
- mFansCount.setText(String.valueOf(info.getFansAmount()));
- mFlowerCount.setText(String.valueOf(info.getIntegralAmount()));
- mPlayCount.setText(String.valueOf(info.getPlayAmount()));
- if (info.getUser().getNickName().length() > 6) {
- mUserName.setText(info.getUser().getNickName().substring(0, 6) + "...");
- } else {
- mUserName.setText(info.getUser().getNickName());
- }
- Logger.e("mUserName:" + mUserName.getText().toString());
- doFollowSuccess(info.getLike());
- if (info.getUser().getUid().equals(Consts.getUID()) || info.getUser().getProfession().equals("官方")) {
- //是自己
- mIsFansCheckBox.setVisibility(View.INVISIBLE);
- } else {
- addUiClick(mIsFansCheckBox, o -> {
- mPresenter.doFollow(info.getUser().getUid());
- });
- }
- }
- @Override
- public void doFollowSuccess(boolean isfollow) {
- isRemoveFollow = !isfollow;
- if (isfollow) {
- mIsFansCheckBox.setImageResource(R.drawable.activity_otherrecord_isfans_true);
- } else {
- mIsFansCheckBox.setImageResource(R.drawable.activity_otherrecord_isfans_false);
- }
- }
- }
|