package com.edufound.reader.fragment; import android.annotation.SuppressLint; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; 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.activity.CustomerServiceActivity; import com.edufound.reader.activity.MessageActivity; import com.edufound.reader.activity.MyCollectionActivity; import com.edufound.reader.activity.MyFollowActivity; import com.edufound.reader.activity.PayActivity; import com.edufound.reader.activity.SafflowerActivity; import com.edufound.reader.activity.UserInfoSettingActivity; import com.edufound.reader.base.BaseMvpFragment; import com.edufound.reader.bean.MyInfoBean; import com.edufound.reader.bean.UserRecordBean; import com.edufound.reader.botsdk.BotRegisterListener; import com.edufound.reader.contract.MyTabFragmentContract; import com.edufound.reader.presenter.MyTabFragmentPresenter; import com.edufound.reader.util.Consts; import com.edufound.reader.util.EfunboxUtil; import com.edufound.reader.util.GlideUtils; import com.jakewharton.rxbinding4.view.RxView; import com.orhanobut.logger.Logger; import java.util.HashMap; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import io.reactivex.rxjava3.annotations.Nullable; import io.reactivex.rxjava3.functions.Consumer; public class MyTabFragment extends BaseMvpFragment implements MyTabFragmentContract.View { View mRootView; HorizontalScrollView mScrollView; GridLayout mGridLayout; FrameLayout mNoRecordLayout; ImageView mHeaderUserImg; ImageView mHeadUserSetting; TextView mHeadUserPhone; TextView mHeadUserGrade; TextView mHeadUserFans; TextView mHeadUserPlayCount; FrameLayout mHeadUserVip; FrameLayout mHeadUserRedFlower; ImageView mHeadUserMyAttention; ImageView mHeadUserMyCollection; FrameLayout mUserLayout; FrameLayout mHeadUserMessage; ImageView mHeadUserCustomerService; TextView mRecordSize; ImageView mUnReadIcon; TextView mFlowerCount; TextView mOverDate; Space mBottomView; Rect mScreenRect; boolean isNeedLoad = true; @Override protected void initView(View view) { mPresenter = new MyTabFragmentPresenter(getContext()); mPresenter.attachView(this); mRootView = view; mScrollView = view.findViewById(R.id.fragment_main_user_scrollview); mBottomView = view.findViewById(R.id.fragment_main_user_bottomview); mRecordSize = view.findViewById(R.id.fragment_main_user_myrecordsize); mScreenRect = new Rect(0, 0, Consts.getScreenSize()[0], Consts.getScreenSize()[1]); //初始化左侧header ui FrameLayout headlayout = view.findViewById(R.id.fragment_main_user_head_layout); mHeaderUserImg = headlayout.findViewById(R.id.fragment_main_user_head); mHeadUserSetting = headlayout.findViewById(R.id.fragment_main_user_setting); mHeadUserPhone = headlayout.findViewById(R.id.fragment_main_user_phonenum); mHeadUserGrade = headlayout.findViewById(R.id.fragment_main_user_grade); mHeadUserFans = headlayout.findViewById(R.id.fragment_main_user_fans); mHeadUserPlayCount = headlayout.findViewById(R.id.fragment_main_user_playcount); mHeadUserVip = headlayout.findViewById(R.id.fragment_main_user_vip); mOverDate = headlayout.findViewById(R.id.fragment_main_user_vip_date); mHeadUserRedFlower = headlayout.findViewById(R.id.fragment_main_user_redflower); mHeadUserMyAttention = headlayout.findViewById(R.id.fragment_main_user_myattention); mHeadUserMyCollection = headlayout.findViewById(R.id.fragment_main_user_mycollection); mHeadUserMessage = headlayout.findViewById(R.id.fragment_main_user_messagenotification); mHeadUserCustomerService = headlayout.findViewById(R.id.fragment_main_user_customerservice); mUnReadIcon = view.findViewById(R.id.fragment_main_user_unread_icon); mUserLayout = view.findViewById(R.id.fragment_main_user_layout); mGridLayout = view.findViewById(R.id.fragment_my_recyclerview); mNoRecordLayout = view.findViewById(R.id.fragment_main_user_norecord); mFlowerCount = view.findViewById(R.id.fragment_main_user_redflower_text); mPresenter.initGridLayout(mGridLayout, mNoRecordLayout); mPresenter.getMyInfo(); mPresenter.getMyRecords(); // mPresenter.getIsBuy(); mPresenter.getAuth(); } @Override protected int getLayoutId() { return R.layout.fragment_main_user; } @SuppressLint("AutoDispose") @RequiresApi(api = Build.VERSION_CODES.M) @Override protected void initViewListener() { RxView.scrollChangeEvents(mScrollView).subscribe(viewScrollChangeEvent -> { loadMoreItem(); }); // RxViewGroup.changeEvents(mGridLayout).subscribe(viewGroupHierarchyChangeEvent -> { // loadMoreItem(); // }); // Observable observable = RxView.clicks(mHeadUserSetting).share(); // observable.buffer(observable.debounce(200, TimeUnit.MILLISECONDS).compose(bindUntilEvent(new Observable() { // @Override // protected void subscribeActual(@NonNull Observer observer) { // Logger.e("subscribeActual--subscribeActual--subscribeActual"); // } // }, ActivityEvent.STOP))) // .subscribe(list -> { // Logger.e("iv3连续点击次数:" + list.size()); // });//这里的时间指的是任意两次点击最长间隔时间); // addUiClick(mHeadUserSetting, o -> { // Toast.makeText(getActivity(), "click 设置", Toast.LENGTH_SHORT).show(); // }); addUiClick(mHeadUserVip, o -> { Toast.makeText(getActivity(), "click vip", Toast.LENGTH_SHORT).show(); // toNextActivity(PayActivity.class); BotRegisterListener.payBaiDuVip(); }); addUiClick(mHeadUserRedFlower, o -> { Toast.makeText(getActivity(), "click 小红花", Toast.LENGTH_SHORT).show(); toNextActivity(SafflowerActivity.class); }); addUiClick(mHeadUserMyAttention, o -> { Toast.makeText(getActivity(), "click 我的关注", Toast.LENGTH_SHORT).show(); toNextActivity(MyFollowActivity.class); }); addUiClick(mHeadUserMyCollection, o -> { Toast.makeText(getActivity(), "click 我的收藏", Toast.LENGTH_SHORT).show(); toNextActivity(MyCollectionActivity.class); }); addUiClick(mHeadUserMessage, o -> { Toast.makeText(getActivity(), "click 消息通知", Toast.LENGTH_SHORT).show(); toNextActivity(MessageActivity.class); }); addUiClick(mHeadUserCustomerService, o -> { Toast.makeText(getActivity(), "click 联系客服", Toast.LENGTH_SHORT).show(); toNextActivity(CustomerServiceActivity.class); }); addUiClick(mUserLayout, o -> { Bundle bundle = new Bundle(); bundle.putString("index", "123123123"); toNextActivity(UserInfoSettingActivity.class, bundle); }); } @Override public void showLoading() { } @Override public void hideLoading() { } @Override public void onError(String errMessage) { } @Override public ViewGroup getRootView() { return (ViewGroup) mRootView; } @Override public void addUiClick(View view, Consumer onNext) { addUiClickListener(view, onNext); } @Override public void setUserInfo(MyInfoBean bean) { if (bean.getUser().getAvatar() == null || bean.getUser().getAvatar().equals("")) { if (bean.getUser().getGender().equals("1")) { //男孩 mHeaderUserImg.setImageResource(R.drawable.activity_userinfo_setting_boy); } else if (bean.getUser().getGender().equals("0")) { //女孩 mHeaderUserImg.setImageResource(R.drawable.activity_userinfo_setting_girl); } } else { GlideUtils.loadCircleImage(getContext(), bean.getUser().getAvatar(), mHeaderUserImg); } mHeadUserPhone.setText(bean.getUser().getNickName()); mHeadUserGrade.setText(EfunboxUtil.getCNGradeByEnum(bean.getUser().getGrade())); mHeadUserFans.setText(String.valueOf(bean.getFansAmount())); mHeadUserPlayCount.setText(String.valueOf(bean.getPlayAmount())); mFlowerCount.setText(String.valueOf(bean.getIntegralAmount())); if (Integer.valueOf(bean.getUnreadAmount()) <= 0) { mUnReadIcon.setVisibility(View.INVISIBLE); } } @Override public void setRecordSize(int size) { mRecordSize.setText("我的作品:" + size); } @Override public void onDestroy() { // isNeedLoad = true; // mPresenter.onDestory(mGridLayout); super.onDestroy(); } @Override public void onGetDisconnect() { } @Override public void onGetMobileConnect() { } @Override public void onGetWifiConnect() { } @Override public void onDestroyView() { isNeedLoad = true; mPresenter.onDestory(mGridLayout); super.onDestroyView(); } @Override public void loadMoreItem() { if (mBottomView.getLocalVisibleRect(mScreenRect) || mGridLayout.getChildCount() <= 2) { if (isNeedLoad) { isNeedLoad = false; mPresenter.setGridData(mGridLayout, mNoRecordLayout); } } else { isNeedLoad = true; } } @Override public void getIsBuySuccess(String date) { if (date == null || date.equals("")) { mHeadUserVip.setBackgroundResource(R.drawable.fragment_my_vip); mOverDate.setVisibility(View.GONE); } else { mHeadUserVip.setBackgroundResource(R.drawable.fragment_my_vip_renew); mOverDate.setVisibility(View.VISIBLE); mOverDate.setText("到期时间:" + date); } } }