123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 |
- package com.edufound.reader.presenter;
- import android.animation.Animator;
- import android.animation.LayoutTransition;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.LayoutInflater;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.FrameLayout;
- import android.widget.GridLayout;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.edufound.reader.R;
- import com.edufound.reader.activity.SmallFullVideoActivity;
- import com.edufound.reader.apiserver.OrderApiServerImpl;
- import com.edufound.reader.base.BaseActivity;
- import com.edufound.reader.base.BasePresenter;
- import com.edufound.reader.bean.HttpResultBean;
- import com.edufound.reader.bean.MyInfoBean;
- import com.edufound.reader.bean.UserRecordBean;
- import com.edufound.reader.contract.MyTabFragmentContract;
- import com.edufound.reader.listener.PopUtilClickListener;
- import com.edufound.reader.model.CharacterFragmentModel;
- import com.edufound.reader.model.MyTabFragmentModel;
- import com.edufound.reader.popwindow.PopWindowUtil;
- import com.edufound.reader.receiver.BackPageReceiver;
- import com.edufound.reader.util.EfunboxUtil;
- import com.edufound.reader.util.GlideUtils;
- import com.edufound.reader.util.MMKVUtil;
- import com.edufound.reader.util.SizeUtils;
- import com.google.gson.reflect.TypeToken;
- import com.okhttplib.HttpInfo;
- import com.okhttplib.callback.Callback;
- import com.orhanobut.logger.Logger;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.View> implements MyTabFragmentContract.Presenter {
- MyTabFragmentModel mModel;
- OrderApiServerImpl mOrderApi;
- Context mContext;
- List<UserRecordBean> mDataList;
- int mListStart = 0;
- int mListEnd = 6;
- int curPosition = 0;
- boolean isNedRef = false;
- public MyTabFragmentPresenter(Context context) {
- mContext = context;
- mModel = new MyTabFragmentModel();
- mOrderApi = new OrderApiServerImpl();
- BackPageReceiver.registerReceiver(context, BackPageReceiver.BACK_HOME_REF_USER_INFO);
- BackPageReceiver.registerBackPageReceiverListener(backListener);
- }
- @Override
- public void initGridLayout(GridLayout gridLayout, FrameLayout norecordlayout) {
- if (gridLayout.getLayoutTransition() == null) {
- LayoutTransition transition = new LayoutTransition();
- transition.setDuration(200);
- transition.setAnimator(LayoutTransition.APPEARING, null);
- transition.setAnimator(LayoutTransition.CHANGE_APPEARING, null);
- transition.setAnimator(LayoutTransition.DISAPPEARING, null);
- transition.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, transition.getAnimator(LayoutTransition.CHANGE_DISAPPEARING));
- gridLayout.setLayoutTransition(transition);
- }
- gridLayout.setRowCount(2);
- }
- public void setGridData(GridLayout gridLayout, FrameLayout norecordlayout) {
- if (mDataList == null || mDataList.size() <= 0) {
- norecordlayout.setVisibility(View.VISIBLE);
- gridLayout.setVisibility(View.GONE);
- return;
- }
- if (mListEnd > mDataList.size()) {
- mListEnd = mDataList.size();
- }
- int timeCount = 0;
- for (int j = mListStart; j < mListEnd; j++) {
- timeCount++;
- Message message = new Message();
- message.obj = gridLayout;
- message.what = CharacterFragmentModel.LOAD_GRID;
- message.arg1 = j;
- mUserFragmentHandler.sendMessageDelayed(message, 50 * timeCount);
- }
- mListStart = mListEnd;
- if (mListEnd + 6 > mDataList.size()) {
- mListEnd = mDataList.size();
- } else {
- mListEnd = mListEnd + 6;
- }
- }
- private void setGridItemView(GridLayout gridLayout, int index) {
- if (mView == null) {
- return;
- }
- View view = LayoutInflater.from(mContext).inflate(R.layout.adapter_item_record_user, null);
- UserRecordBean.UserRead reader = mDataList.get(index).getUserRead();
- ImageView imgIcon = view.findViewById(R.id.adapter_item_record_user_icon);
- TextView name = view.findViewById(R.id.adapter_item_record_user_name);
- ImageView imgDel = view.findViewById(R.id.adapter_item_record_user_del);
- ImageView imgPriv = view.findViewById(R.id.adapter_item_record_user_priv);
- TextView lookAmount = view.findViewById(R.id.adapter_item_record_user_look_num);
- TextView likeAmount = view.findViewById(R.id.adapter_item_record_user_thumb_num);
- TextView commentAmount = view.findViewById(R.id.adapter_item_record_user_comment_num);
- TextView favoritesAmount = view.findViewById(R.id.adapter_item_record_user_start_num);
- FrameLayout checkLayout = view.findViewById(R.id.adapter_item_record_user_examine_layout);
- // GlideUtils.loadRoundCircleImage(mContext, reader.getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
- GlideUtils.loadImage(mContext, reader.getCoverImg(), imgIcon);
- if (reader.getTitle().length() > 4) {
- name.setText(reader.getTitle().substring(0, 4) + "...");
- } else {
- name.setText(reader.getTitle());
- }
- lookAmount.setText(EfunboxUtil.checkNum10000(reader.getPlayAmount()));
- likeAmount.setText(EfunboxUtil.checkNum10000(reader.getLikeAmount()));
- commentAmount.setText(EfunboxUtil.checkNum10000(reader.getCommentAmount()));
- favoritesAmount.setText(EfunboxUtil.checkNum10000(reader.getFavoritesAmount()));
- if (!reader.getStatus().equals("CHECK")) {
- checkLayout.setVisibility(View.GONE);
- }
- // if (index < 10) {
- // //测试用
- // checkLayout.setVisibility(View.GONE);
- // imgPriv.setImageResource(R.drawable.adapter_item_record_pub);
- // }
- mView.addUiClick(imgDel, o -> {
- PopWindowUtil.showRecordRemovedWindow(mContext, mView.getRootView(), new PopUtilClickListener() {
- @Override
- public void clickCancel() {
- }
- @Override
- public void clickSubmit(Object object) {
- view.animate().scaleY(0).scaleX(0).setDuration(200).setListener(new Animator.AnimatorListener() {
- @Override
- public void onAnimationStart(Animator animator) {
- }
- @Override
- public void onAnimationEnd(Animator animator) {
- gridLayout.removeView(view);
- mView.loadMoreItem();
- mDataList.remove(index);
- mView.setRecordSize(mDataList.size());
- changeMyRecordStatusById("{\"id\": " + reader.getId() + ", \t\"status\": \"DEL\" }");
- }
- @Override
- public void onAnimationCancel(Animator animator) {
- }
- @Override
- public void onAnimationRepeat(Animator animator) {
- }
- }).start();
- }
- });
- });
- if (reader.getStatus().equals("DISABLE")) {
- imgPriv.setImageResource(R.drawable.adapter_item_record_pri);
- } else if (reader.getStatus().equals("NORMAL")) {
- imgPriv.setImageResource(R.drawable.adapter_item_record_pub);
- }
- view.setTag(imgPriv);
- mView.addUiClick(imgPriv, o -> {
- if (reader.getStatus().equals("DISABLE")) {
- //当前是隐藏状态,需要公开
- curPosition = index;
- changeMyRecordStatusById("{\"id\": " + reader.getId() + ", \t\"status\": \"NORMAL\" }");
- imgPriv.setImageResource(R.drawable.adapter_item_record_pub);
- } else if (reader.getStatus().equals("NORMAL")) {
- //当前正常状态,需要隐藏
- curPosition = index;
- changeMyRecordStatusById("{\"id\": " + reader.getId() + ", \t\"status\": \"DISABLE\" }");
- imgPriv.setImageResource(R.drawable.adapter_item_record_pri);
- }
- });
- mView.addUiClick(view, o -> {
- Bundle bundle = new Bundle();
- bundle.putString("index", index + "");
- bundle.putString("dataJson", "getmmkv");
- bundle.putString("intoPage", "MyTab");
- //数据太多了。直接传不过去,通过MMKV写一下再读一下
- MMKVUtil.getInstance().encode("video_data", ((BaseActivity) mView.getActivity()).getGson().toJson(mDataList));
- ((BaseActivity) mView.getActivity()).toNextActivity(SmallFullVideoActivity.class, bundle);
- });
- checkLayout.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(View view, MotionEvent motionEvent) {
- return true;
- }
- });
- GridLayout.LayoutParams params = new GridLayout.LayoutParams(new FrameLayout.LayoutParams(SizeUtils.dp2px(mContext, 415), SizeUtils.dp2px(mContext, 290)));
- params.setMargins(SizeUtils.dp2px(mContext, 10), 0, SizeUtils.dp2px(mContext, 20), SizeUtils.dp2px(mContext, 20));
- view.setLayoutParams(params);
- gridLayout.addView(view);
- }
- @Override
- public void onDestory(GridLayout layout) {
- BackPageReceiver.unRegisterReceiver(mView.getActivity());
- if (mUserFragmentHandler != null) {
- mUserFragmentHandler.removeMessages(MyTabFragmentModel.LOAD_GRID);
- mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
- mUserFragmentHandler = null;
- }
- layout.removeAllViews();
- layout = null;
- mView = null;
- }
- @Override
- public void getMyRecords() {
- mModel.getMyRecords(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<List<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<List<UserRecordBean>>>() {
- }.getType());
- mDataList = bean.getData();
- mView.loadMoreItem();
- mView.setRecordSize(mDataList.size());
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- Logger.e("获取我的朗读列表错误:" + info.getRetDetail());
- Logger.e("获取我的朗读列表错误:" + info.getNetCode());
- Logger.e("获取我的朗读列表错误:" + info.getRetCode());
- }
- });
- }
- @Override
- public void getMyInfo() {
- if (mView == null) {
- return;
- }
- mModel.getMyInfo(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<MyInfoBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<MyInfoBean>>() {
- }.getType());
- mView.setUserInfo(bean.getData());
- getMyRecords();
- getCheckNum();
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- }
- });
- }
- @Override
- public void getIsBuy() {
- mOrderApi.isBuy(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
- }.getType());
- if (Boolean.valueOf(bean.getData())) {
- } else {
- Logger.e("没有购买");
- }
- // mView.getIsBuySuccess(Boolean.valueOf(bean.getData()));
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- }
- });
- }
- @Override
- public void getAuth() {
- mOrderApi.getAuth(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
- }.getType());
- mView.getIsBuySuccess(bean.getData());
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- }
- });
- }
- @Override
- public void changeMyRecordStatusById(String json) {
- mModel.changeMyRecordStatusById(mView.getActivity(), json, new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<UserRecordBean.UserRead> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserRecordBean.UserRead>>() {
- }.getType());
- mDataList.get(curPosition).getUserRead().setStatus(bean.getData().getStatus());
- mView.changeRecordStatusSuccess(curPosition, bean.getData().getStatus());
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- Logger.e("改变状态失败");
- }
- });
- }
- @Override
- public void sendRefMyFragment() {
- Intent intent = new Intent(BackPageReceiver.BACK_HOME_REF_MY_FRAGMENT);
- mView.getActivity().sendBroadcast(intent);
- }
- @Override
- public void getCheckNum() {
- mModel.getIsCheckNum(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- Logger.e("info:" + info.getRetDetail());
- HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
- }.getType());
- if (Integer.valueOf(bean.getData()) == 0) {
- Logger.e("没有审核中的了");
- if (isNedRef) {
- sendRefMyFragment();
- mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
- }
- } else if (Integer.valueOf(bean.getData()) > 0) {
- Logger.e("还有审核中的");
- mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
- isNedRef = true;
- mUserFragmentHandler.sendEmptyMessageDelayed(MyTabFragmentModel.GET_CHECK_NUM, 5000);
- }
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- }
- });
- }
- @Override
- public void fragmentPause() {
- mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
- }
- @Override
- public void fragmentResume() {
- }
- Handler mUserFragmentHandler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
- case MyTabFragmentModel.LOAD_GRID:
- setGridItemView((GridLayout) msg.obj, msg.arg1);
- break;
- case MyTabFragmentModel.GET_CHECK_NUM:
- getCheckNum();
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + msg.what);
- }
- return false;
- }
- });
- BackPageReceiver.onBackPage backListener = new BackPageReceiver.onBackPage() {
- @Override
- public void pageBack(Intent intent) {
- if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REF_USER_INFO)) {
- //刷新一下用户信息
- getMyInfo();
- }
- }
- };
- }
|