|
@@ -1,8 +1,10 @@
|
|
package com.edufound.reader.presenter;
|
|
package com.edufound.reader.presenter;
|
|
|
|
|
|
-import android.content.Intent;
|
|
|
|
import android.graphics.Color;
|
|
import android.graphics.Color;
|
|
|
|
+import android.text.TextUtils;
|
|
import android.view.KeyEvent;
|
|
import android.view.KeyEvent;
|
|
|
|
+import android.view.View;
|
|
|
|
+import android.view.ViewGroup;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.RadioButton;
|
|
import android.widget.RadioButton;
|
|
import android.widget.RadioGroup;
|
|
import android.widget.RadioGroup;
|
|
@@ -10,36 +12,50 @@ import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
import android.widget.Toast;
|
|
|
|
|
|
import com.edufound.reader.R;
|
|
import com.edufound.reader.R;
|
|
-import com.edufound.reader.activity.LoginAlertActivity;
|
|
|
|
|
|
+import com.edufound.reader.apiserver.UserApiServerImpl;
|
|
|
|
+import com.edufound.reader.base.BaseActivity;
|
|
import com.edufound.reader.base.BasePresenter;
|
|
import com.edufound.reader.base.BasePresenter;
|
|
|
|
+import com.edufound.reader.bean.HttpResultBean;
|
|
|
|
+import com.edufound.reader.bean.UserBean;
|
|
import com.edufound.reader.contract.MainContract;
|
|
import com.edufound.reader.contract.MainContract;
|
|
import com.edufound.reader.fragment.CharacterFragment;
|
|
import com.edufound.reader.fragment.CharacterFragment;
|
|
-import com.edufound.reader.fragment.RecommendFragment;
|
|
|
|
import com.edufound.reader.fragment.MyTabFragment;
|
|
import com.edufound.reader.fragment.MyTabFragment;
|
|
-import com.edufound.reader.listener.PopupRecordStatusListener;
|
|
|
|
-import com.edufound.reader.model.MainModel;
|
|
|
|
|
|
+import com.edufound.reader.fragment.RecommendFragment;
|
|
import com.edufound.reader.listener.PopUtilClickListener;
|
|
import com.edufound.reader.listener.PopUtilClickListener;
|
|
|
|
+import com.edufound.reader.model.MainModel;
|
|
import com.edufound.reader.popwindow.PopWindowUtil;
|
|
import com.edufound.reader.popwindow.PopWindowUtil;
|
|
import com.edufound.reader.util.Consts;
|
|
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.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 com.orhanobut.logger.Logger;
|
|
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.fragment.app.FragmentManager;
|
|
import androidx.fragment.app.FragmentManager;
|
|
import androidx.fragment.app.FragmentTransaction;
|
|
import androidx.fragment.app.FragmentTransaction;
|
|
|
|
|
|
public class MainPresenter extends BasePresenter<MainContract.View> implements MainContract.Presenter {
|
|
public class MainPresenter extends BasePresenter<MainContract.View> implements MainContract.Presenter {
|
|
MainModel mModel;
|
|
MainModel mModel;
|
|
|
|
+ UserApiServerImpl mUserApi;
|
|
MyTabFragment mUserFragment;
|
|
MyTabFragment mUserFragment;
|
|
RecommendFragment mRecommendFragment;
|
|
RecommendFragment mRecommendFragment;
|
|
FragmentManager mFragmentManager;
|
|
FragmentManager mFragmentManager;
|
|
RecommendFragment mFollowFragment;
|
|
RecommendFragment mFollowFragment;
|
|
CharacterFragment mCharacterFragment;
|
|
CharacterFragment mCharacterFragment;
|
|
int mRadioCheckIndex = 0;
|
|
int mRadioCheckIndex = 0;
|
|
- boolean showSelectGrade = true;
|
|
|
|
|
|
|
|
public MainPresenter(FragmentManager fragmentManager) {
|
|
public MainPresenter(FragmentManager fragmentManager) {
|
|
mModel = new MainModel();
|
|
mModel = new MainModel();
|
|
|
|
+ mUserApi = new UserApiServerImpl();
|
|
mFragmentManager = fragmentManager;
|
|
mFragmentManager = fragmentManager;
|
|
mUserFragment = new MyTabFragment();
|
|
mUserFragment = new MyTabFragment();
|
|
mRecommendFragment = new RecommendFragment(0);
|
|
mRecommendFragment = new RecommendFragment(0);
|
|
@@ -54,13 +70,13 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
|
|
switch (id) {
|
|
switch (id) {
|
|
case R.id.main_left_tab_layout_myinfo:
|
|
case R.id.main_left_tab_layout_myinfo:
|
|
//我的
|
|
//我的
|
|
- Logger.e("我的");
|
|
|
|
-// if (checkLogin()) {
|
|
|
|
-// mRadioCheckIndex = 0;
|
|
|
|
-// changeFragmentLayout(mUserFragment);
|
|
|
|
-// } else {
|
|
|
|
-// ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
|
|
|
|
-// }
|
|
|
|
|
|
+// Logger.e("我的");
|
|
|
|
+ if (checkLogin()) {
|
|
|
|
+ mRadioCheckIndex = 0;
|
|
|
|
+ changeFragmentLayout(mUserFragment);
|
|
|
|
+ } else {
|
|
|
|
+ ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
|
|
|
|
+ }
|
|
changeFragmentLayout(mUserFragment);
|
|
changeFragmentLayout(mUserFragment);
|
|
break;
|
|
break;
|
|
case R.id.main_left_tab_layout_recommend:
|
|
case R.id.main_left_tab_layout_recommend:
|
|
@@ -69,26 +85,6 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
|
|
((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
|
|
((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
|
|
Logger.e("推荐");
|
|
Logger.e("推荐");
|
|
changeFragmentLayout(mRecommendFragment);
|
|
changeFragmentLayout(mRecommendFragment);
|
|
- if (showSelectGrade) {
|
|
|
|
- radioGroup.postDelayed(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(), "选择了:" + object.toString(), Toast.LENGTH_SHORT).show();
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- showSelectGrade = false;
|
|
|
|
- }
|
|
|
|
- }, 500);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
break;
|
|
break;
|
|
case R.id.main_left_tab_layout_follow:
|
|
case R.id.main_left_tab_layout_follow:
|
|
//关注
|
|
//关注
|
|
@@ -119,13 +115,14 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
|
|
}
|
|
}
|
|
|
|
|
|
boolean checkLogin() {
|
|
boolean checkLogin() {
|
|
- if (Consts.getmConstsUserBean() != null) {
|
|
|
|
|
|
+ if (!Consts.getUID().equals("test")) {
|
|
//已登录
|
|
//已登录
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
//未登录,去登录
|
|
//未登录,去登录
|
|
- Intent tologin = new Intent(mView.getActivity(), LoginAlertActivity.class);
|
|
|
|
- mView.getActivity().startActivity(tologin);
|
|
|
|
|
|
+// Intent tologin = new Intent(mView.getActivity(), LoginAlertActivity.class);
|
|
|
|
+// mView.getActivity().startActivity(tologin);
|
|
|
|
+ registerMobile("15810271411");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -148,15 +145,103 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
|
|
public void checkModelIsDebug() {
|
|
public void checkModelIsDebug() {
|
|
if (Consts.isIsDebug()) {
|
|
if (Consts.isIsDebug()) {
|
|
TextView tv = new TextView(mView.getActivity());
|
|
TextView tv = new TextView(mView.getActivity());
|
|
- tv.setLayoutParams(new FrameLayout.LayoutParams(SizeUtils.px2dp(mView.getActivity(), 300), SizeUtils.px2dp(mView.getActivity(), 100)));
|
|
|
|
|
|
+ tv.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, SizeUtils.px2dp(mView.getActivity(), 100)));
|
|
tv.setTextSize(SizeUtils.px2dp(mView.getActivity(), 30));
|
|
tv.setTextSize(SizeUtils.px2dp(mView.getActivity(), 30));
|
|
tv.setTextColor(Color.RED);
|
|
tv.setTextColor(Color.RED);
|
|
tv.setBackgroundColor(mView.getActivity().getResources().getColor(R.color.translucent_background));
|
|
tv.setBackgroundColor(mView.getActivity().getResources().getColor(R.color.translucent_background));
|
|
tv.setText("当前在Debug模式下(->application->setIsDebug)");
|
|
tv.setText("当前在Debug模式下(->application->setIsDebug)");
|
|
|
|
+ tv.setOnClickListener(new View.OnClickListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onClick(View view) {
|
|
|
|
+ MMKVUtil.getInstance().clearAll();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
mView.getRootView().addView(tv);
|
|
mView.getRootView().addView(tv);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public void showSelectGradeWindow() {
|
|
|
|
+ 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 {
|
|
|
|
+ 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());
|
|
|
|
+ mView.setCheckIndex();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @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();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
switch (keyCode) {
|
|
switch (keyCode) {
|