123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- package com.edufound.reader.presenter;
- import android.app.Activity;
- 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 android.widget.Toast;
- import com.edufound.reader.R;
- import com.edufound.reader.activity.SmallFullVideoActivity;
- import com.edufound.reader.base.BaseActivity;
- import com.edufound.reader.base.BasePresenter;
- import com.edufound.reader.bean.HttpResultBean;
- import com.edufound.reader.bean.HttpResultDataListBean;
- import com.edufound.reader.bean.UserRecordBean;
- import com.edufound.reader.contract.CharacterFragmentContract;
- import com.edufound.reader.model.CharacterFragmentModel;
- import com.edufound.reader.util.EfunboxUtil;
- import com.edufound.reader.util.GlideUtils;
- import com.edufound.reader.util.MMKVUtil;
- import com.edufound.reader.util.OkHttpClient;
- 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 CharacterFragmentPresenter extends BasePresenter<CharacterFragmentContract.View> implements CharacterFragmentContract.Presenter {
- Context mContext;
- CharacterFragmentModel mModel;
- List<UserRecordBean> mDataList;
- int mListStart = 0;
- int mListEnd = 6;
- public CharacterFragmentPresenter(Context context) {
- mModel = new CharacterFragmentModel();
- mContext = context;
- // mDataList = new ArrayList<>();
- // for (int i = 0; i < 100; i++) {
- // mDataList.add("i=" + i);
- // }
- }
- @Override
- public void initGridLayout(GridLayout gridLayout) {
- if (mDataList == null || mDataList.size() <= 0) {
- return;
- }
- gridLayout.setRowCount(2);
- 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;
- mCharacterHandler.sendMessageDelayed(message, 50 * timeCount);
- }
- mListStart = mListEnd;
- if (mListEnd + 6 > mDataList.size()) {
- mListEnd = mDataList.size();
- } else {
- mListEnd = mListEnd + 6;
- }
- }
- @Override
- public void onDestory(GridLayout layout) {
- if (mCharacterHandler != null) {
- mCharacterHandler.removeMessages(CharacterFragmentModel.LOAD_GRID);
- mCharacterHandler = null;
- }
- layout.removeAllViews();
- layout = null;
- mView = null;
- }
- @Override
- public void getExampleAll() {
- mModel.getExampleAll(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<HttpResultDataListBean<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<UserRecordBean>>>() {
- }.getType());
- mDataList = bean.getData().getList();
- mView.getExampleAllSuccess();
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- }
- });
- }
- private void setGridItemView(GridLayout gridLayout, int index) {
- if (mView == null) {
- return;
- }
- View view = LayoutInflater.from(mContext).inflate(R.layout.adapter_item_record_authority, null);
- ImageView imgIcon = view.findViewById(R.id.adapter_item_record_authority_icon);
- TextView name = view.findViewById(R.id.adapter_item_record_authority_name);
- TextView allcount = view.findViewById(R.id.adapter_item_record_authority_allcount_num);
- TextView looknum = view.findViewById(R.id.adapter_item_record_authority_look_num);
- TextView thumbnum = view.findViewById(R.id.adapter_item_record_authority_thumb_num);
- TextView startnum = view.findViewById(R.id.adapter_item_record_authority_start_num);
- // GlideUtils.loadRoundCircleImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
- GlideUtils.loadImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon);
- name.setText(mDataList.get(index).getUserRead().getTitle());
- allcount.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getReadAmount()));
- looknum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getPlayAmount()));
- thumbnum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getLikeAmount()));
- startnum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getFavoritesAmount()));
- mView.addUiClick(view, o -> {
- Bundle bundle = new Bundle();
- bundle.putString("index", index + "");
- bundle.putString("dataJson", "getmmkv");
- bundle.putString("intoPage", "Character");
- //数据太多了。直接传不过去,通过MMKV写一下再读一下
- MMKVUtil.getInstance().encode("video_data", ((BaseActivity) mView.getActivity()).getGson().toJson(mDataList));
- ((BaseActivity) mView.getActivity()).toNextActivity(SmallFullVideoActivity.class, bundle);
- });
- 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);
- }
- Handler mCharacterHandler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
- case CharacterFragmentModel.LOAD_GRID:
- setGridItemView((GridLayout) msg.obj, msg.arg1);
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + msg.what);
- }
- return false;
- }
- });
- }
|