فهرست منبع

Revert "登录流程优化"

This reverts commit 860e0d34
詹子聪 5 سال پیش
والد
کامیت
f825c01e50

+ 1 - 51
app/src/main/java/com/miekir/eden/ui/home/tool/SystemPresenter.java

@@ -1,15 +1,8 @@
 package com.miekir.eden.ui.home.tool;
 
-import android.text.TextUtils;
-
 import com.miekir.eden.base.ApiService;
-import com.miekir.eden.base.CommonApi;
-import com.miekir.eden.bean.BeiUser;
-import com.miekir.eden.bean.IPInfoBean;
 import com.miekir.eden.bean.SystemBean;
-import com.miekir.eden.constant.ConstantString;
 import com.miekir.eden.constant.EdenError;
-import com.miekir.eden.manager.EdenManager;
 import com.miekir.eden.net.RetrofitHelper;
 import com.miekir.mvp.presenter.BasePresenter;
 import com.miekir.network.core.base.BaseObserver;
@@ -43,21 +36,7 @@ public class SystemPresenter extends BasePresenter<ISystemView> {
                     @Override
                     public void onSuccess(int code, SystemBean result) {
                         if (getView() != null) {
-                            // 老用户直接登录
-                            BeiUser userInfo = EdenManager.getInstance().getBeiUser();
-                            long existTime = System.currentTimeMillis() - userInfo.registerTimeMillis;
-                            boolean isOldUser = Math.abs(existTime) > (24 * 60 * 60 * 1000);
-                            if (isOldUser || userInfo.vip) {
-                                getView().onGetConfigResult(true, EdenError.SUCCESS, result);
-                                return;
-                            }
-
-                            if (TextUtils.equals(userInfo.email, ConstantString.NAME_ADMIN)) {
-                                getView().onGetConfigResult(true, EdenError.SUCCESS, result);
-                                return;
-                            }
-
-                            getRegionInfo(result);
+                            getView().onGetConfigResult(true, EdenError.SUCCESS, result);
                         }
                     }
 
@@ -70,35 +49,6 @@ public class SystemPresenter extends BasePresenter<ISystemView> {
                 });
     }
 
-    private void getRegionInfo(SystemBean systemBean) {
-        RetrofitHelper.getInstance()
-                .getRequestApi(CommonApi.class)
-                .getIPInfo()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new BaseObserver<IPInfoBean>() {
-                    @Override
-                    public void onSuccess(int code, IPInfoBean ipInfo) {
-                        if (getView() != null) {
-                            // 暂不支持中国地区
-                            if ((ipInfo == null || TextUtils.equals("CN", ipInfo.getCountrycode()))) {
-                                getView().onGetConfigResult(false, EdenError.REGION_INVALID, null);
-                                return;
-                            }
-                            getView().onGetConfigResult(true, EdenError.SUCCESS, systemBean);
-                        }
-                    }
-
-                    @Override
-                    public void onFailure(int code, Throwable e, String errMsg) {
-                        if (getView() != null) {
-                            // 获取区域信息失败
-                            getView().onGetConfigResult(false, EdenError.REGION_GET_FAILED, null);
-                        }
-                    }
-                });
-    }
-
 
     /**
      * 设置是否爬虫

+ 51 - 1
app/src/main/java/com/miekir/eden/ui/mine/login/LoginPresenter.java

@@ -1,7 +1,12 @@
 package com.miekir.eden.ui.mine.login;
 
+import android.text.TextUtils;
+
 import com.miekir.eden.base.ApiService;
+import com.miekir.eden.base.CommonApi;
 import com.miekir.eden.bean.BeiUser;
+import com.miekir.eden.bean.IPInfoBean;
+import com.miekir.eden.constant.ConstantString;
 import com.miekir.eden.constant.EdenError;
 import com.miekir.eden.net.RetrofitHelper;
 import com.miekir.mvp.presenter.BasePresenter;
@@ -29,7 +34,25 @@ public class LoginPresenter extends BasePresenter<ILoginView> {
                             return;
                         }
 
-                        getView().onLoginResult(userInfo, EdenError.SUCCESS);
+                        if (userInfo == null) {
+                            getView().onLoginResult(null, EdenError.COMMON);
+                            return;
+                        }
+
+                        // 老用户直接登录
+                        long existTime = System.currentTimeMillis() - userInfo.registerTimeMillis;
+                        boolean isOldUser = Math.abs(existTime) > (24 * 60 * 60 * 1000);
+                        if (isOldUser || userInfo.vip) {
+                            getView().onLoginResult(userInfo, EdenError.SUCCESS);
+                            return;
+                        }
+
+                        if (TextUtils.equals(userInfo.email, ConstantString.NAME_ADMIN)) {
+                            getView().onLoginResult(userInfo, EdenError.SUCCESS);
+                            return;
+                        }
+
+                        getRegionInfo(userInfo);
                     }
 
                     @Override
@@ -41,5 +64,32 @@ public class LoginPresenter extends BasePresenter<ILoginView> {
                 });
     }
 
+    private void getRegionInfo(BeiUser user) {
+        RetrofitHelper.getInstance()
+                .getRequestApi(CommonApi.class)
+                .getIPInfo()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new BaseObserver<IPInfoBean>() {
+                    @Override
+                    public void onSuccess(int code, IPInfoBean ipInfo) {
+                        if (getView() != null) {
+                            // 暂不支持中国地区
+                            if ((ipInfo == null || TextUtils.equals("CN", ipInfo.getCountrycode()))) {
+                                getView().onLoginResult(null, EdenError.REGION_INVALID);
+                                return;
+                            }
+                            getView().onLoginResult(user, EdenError.SUCCESS);
+                        }
+                    }
 
+                    @Override
+                    public void onFailure(int code, Throwable e, String errMsg) {
+                        if (getView() != null) {
+                            // 获取区域信息失败
+                            getView().onLoginResult(null, EdenError.REGION_GET_FAILED);
+                        }
+                    }
+                });
+    }
 }