123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- package com.edufound.reader.presenter;
- import android.content.Intent;
- import android.graphics.Color;
- import android.text.TextUtils;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.FrameLayout;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.edufound.reader.R;
- import com.edufound.reader.activity.LoginAlertActivity;
- import com.edufound.reader.activity.PayActivity;
- import com.edufound.reader.apiserver.UserApiServerImpl;
- import com.edufound.reader.base.BaseActivity;
- import com.edufound.reader.base.BasePresenter;
- import com.edufound.reader.bean.HttpResultBean;
- import com.edufound.reader.bean.SignBean;
- import com.edufound.reader.bean.UserBean;
- import com.edufound.reader.contract.MainContract;
- import com.edufound.reader.cusview.CusToast;
- import com.edufound.reader.fragment.CharacterFragment;
- import com.edufound.reader.fragment.MyTabFragment;
- import com.edufound.reader.fragment.RecommendFragment;
- import com.edufound.reader.listener.PopUtilClickListener;
- import com.edufound.reader.model.MainModel;
- import com.edufound.reader.popwindow.PopWindowUtil;
- import com.edufound.reader.util.Consts;
- import com.edufound.reader.util.DeviceUuidFactory;
- import com.edufound.reader.util.EfunboxUtil;
- import com.edufound.reader.util.MMKVEncodeKey;
- 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.BufferedWriter;
- import java.io.File;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.util.HashMap;
- import java.util.Map;
- import androidx.fragment.app.Fragment;
- import androidx.fragment.app.FragmentManager;
- import androidx.fragment.app.FragmentTransaction;
- public class MainPresenter extends BasePresenter<MainContract.View> implements MainContract.Presenter {
- MainModel mModel;
- UserApiServerImpl mUserApi;
- MyTabFragment mUserFragment;
- RecommendFragment mRecommendFragment;
- FragmentManager mFragmentManager;
- RecommendFragment mFollowFragment;
- CharacterFragment mCharacterFragment;
- int mRadioCheckIndex = -1;
- public MainPresenter(FragmentManager fragmentManager) {
- mModel = new MainModel();
- mUserApi = new UserApiServerImpl();
- mFragmentManager = fragmentManager;
- mUserFragment = new MyTabFragment();
- mRecommendFragment = new RecommendFragment(0);
- mFollowFragment = new RecommendFragment(1);
- mCharacterFragment = new CharacterFragment();
- }
- @Override
- public void onRadioChecked(RadioGroup radioGroup, int id) {
- switch (id) {
- case R.id.main_left_tab_layout_myinfo:
- //我的
- if (EfunboxUtil.checkLogin(mView.getActivity())) {
- mRadioCheckIndex = 0;
- changeFragmentLayout(mUserFragment);
- } else {
- ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
- }
- break;
- case R.id.main_left_tab_layout_recommend:
- //推荐
- mRadioCheckIndex = 1;
- ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
- changeFragmentLayout(mRecommendFragment);
- break;
- case R.id.main_left_tab_layout_follow:
- //关注
- if (EfunboxUtil.checkLogin(mView.getActivity())) {
- mRadioCheckIndex = 2;
- changeFragmentLayout(mFollowFragment);
- } else {
- ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
- }
- break;
- case R.id.main_left_tab_layout_character:
- //任务
- mRadioCheckIndex = 3;
- ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
- changeFragmentLayout(mCharacterFragment);
- break;
- }
- }
- void changeFragmentLayout(Fragment fragment) {
- ((BaseActivity) mView.getActivity()).removeFirstTipView();
- FragmentTransaction transaction = mFragmentManager.beginTransaction();
- transaction.addToBackStack(null);
- transaction.replace(R.id.main_fragment_layout, fragment);
- transaction.commit();
- }
- @Override
- public void activityDestroy() {
- }
- @Override
- public void activityPause() {
- }
- @Override
- public void activityResume() {
- refMyFragment();
- }
- @Override
- public void checkModelIsDebug() {
- if (Consts.isIsDebug()) {
- TextView tv = new TextView(mView.getActivity());
- tv.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, SizeUtils.px2dp(mView.getActivity(), 100)));
- tv.setTextSize(SizeUtils.px2dp(mView.getActivity(), 30));
- tv.setTextColor(Color.RED);
- tv.setBackgroundColor(mView.getActivity().getResources().getColor(R.color.translucent_background));
- tv.setText("当前在Debug模式下(->application->setIsDebug)");
- tv.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- // MMKVUtil.getInstance().clearAll();
- }
- });
- mView.getRootView().addView(tv);
- }
- }
- @Override
- public void showSelectGradeWindow() {
- mView.getRootView().post(new Runnable() {
- @Override
- public void run() {
- PopWindowUtil.showSelectGradeWindow(mView.getActivity(), mView.getRootView(), 0, new PopUtilClickListener() {
- @Override
- public void clickCancel() {
- }
- @Override
- public void clickSubmit(Object object) {
- // Toast.makeText(mView.getActivity(), "选择了:" + EfunboxUtil.getEnumByCNGrade(object.toString()), Toast.LENGTH_SHORT).show();
- MMKVUtil.getInstance().encode(MMKVEncodeKey.USER_GRADE, EfunboxUtil.getEnumByCNGrade(object.toString()));
- }
- });
- }
- });
- }
- @Override
- public void userIsLogin() {
- mUserApi.isLogin(mView.getActivity(), DeviceUuidFactory.getUuid(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
- }.getType());
- Logger.e("info.get:" + info.getRetDetail());
- if (bean.getCode().equals("300")) {
- //没有用户数据
- if (TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE))) {
- //没有选择过年纪,选择年纪
- Logger.e("TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE)");
- showSelectGradeWindow();
- } else {
- Logger.e("TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE)--else");
- //选择过年纪。无处理
- }
- // registerMobile("18655365222");
- mView.setCheckIndex();
- } else {
- Consts.setUID(bean.getData().getUid());
- //用户是否登录,登录了,创建Consts的userbean
- Consts.setmConstsUserBean(bean.getData());
- mView.setCheckIndex();
- mUserApi.loginSign(mView.getActivity(), new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- HttpResultBean<SignBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<SignBean>>() {
- }.getType());
- if (bean.getData().getIsSign()) {
- CusToast.getInstance(mView.getActivity()).show("恭喜签到成功\n奖励" + bean.getData().getCount() + "朵小红花", 2000);
- }
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- }
- });
- }
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- if (TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE))) {
- //没有选择过年纪,选择年纪
- showSelectGradeWindow();
- } else {
- //选择过年纪。无处理
- }
- mView.setCheckIndex();
- }
- });
- }
- @Override
- public void registerMobile(String mobileNo) {
- if (EfunboxUtil.isMobileNO(mobileNo)) {
- Map<String, String> map = new HashMap<>();
- map.put("deviceCode", DeviceUuidFactory.getUuid());
- map.put("channel", Consts.getUmengChannel());
- map.put("mobileNo", mobileNo);
- if (MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE).equals("") || MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE) == null) {
- //如果没有,默认给一年级
- map.put("grade", "PRIMARY_FIRST_GRADE");
- } else {
- map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
- }
- String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
- mUserApi.registerMobile(mView.getActivity(), json, new Callback() {
- @Override
- public void onSuccess(HttpInfo info) throws IOException {
- Logger.e("手机号注册成功:" + info.getRetDetail());
- HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
- }.getType());
- Consts.setUID(bean.getData().getUid());
- //用户是否登录,登录了,创建Consts的userbean
- Consts.setmConstsUserBean(bean.getData());
- }
- @Override
- public void onFailure(HttpInfo info) throws IOException {
- Logger.e("手机号注册失败:" + info.getRetDetail());
- Toast.makeText(mView.getActivity(), "注册失败", Toast.LENGTH_SHORT).show();
- }
- });
- } else {
- Toast.makeText(mView.getActivity(), "手机号不正确", Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- public void refRecordById(String id) {
- switch (mRadioCheckIndex) {
- case 1:
- mRecommendFragment.getPresenter().getRecordInfoById(id);
- break;
- case 2:
- mFollowFragment.getPresenter().getRecordInfoById(id);
- break;
- }
- }
- @Override
- public void refMyFragment() {
- if (mRadioCheckIndex == 0) {
- mUserFragment = new MyTabFragment();
- changeFragmentLayout(mUserFragment);
- }
- }
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- switch (keyCode) {
- case KeyEvent.KEYCODE_BACK:
- case KeyEvent.KEYCODE_ESCAPE:
- PopWindowUtil.showExitAppWindow(mView.getActivity(), mView.getRootView());
- return true;
- }
- return true;
- }
- }
|