Ver código fonte

[공통][Bug] 앱 진입 로직 수정
- 회원이면 바로 메인 화면으로 -> 로그인 중 휴면 계정/잠김 일 수 있음
- 비회원이면 (권한 안내/온보딩) 보일 수 있다. -> 이후 메인

hyodong.min 7 anos atrás
pai
commit
ba2289303a

+ 27 - 24
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ActivityStarter.java

@@ -7,14 +7,14 @@ import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
 
-import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.disposables.Disposable;
-import io.reactivex.schedulers.Schedulers;
+import kr.co.zumo.app.lifeplus.bean.api.LoginResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.UserNoBean;
 import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
+import kr.co.zumo.app.lifeplus.model.module.APIMemberSelectModule;
+import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
 import kr.co.zumo.app.lifeplus.model.module.LoginModuleParser;
-import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
@@ -51,20 +51,12 @@ public class ActivityStarter {
     Log.i("APP# SplashActivity | onCreate", "| Network Connected ==============================================================> " + isConnected);
     LifeplusPreferences preferences = SuperModel.getInstance().getPreferences();
 
+    String userId = SuperModel.getInstance().getUserId();
     Intent intent = null;
     if (isConnected == false) {
       intent = new Intent(context, NetworkErrorActivity.class);
     }
-    else if (preferences.isPermissionInfoDone() == false) {
-      intent = new Intent(context, PermissionInfoActivity.class);
-    }
-    else if (preferences.isTutorialDone() == false) {
-      intent = new Intent(context, OnBoardingActivity.class);
-    }
-    else if (StringUtil.isEmpty(SuperModel.getInstance().getUserId())) {
-      intent = new Intent(context, MainActivity.class);
-    }
-    else {
+    else if (StringUtil.isFull(userId)) {
       /**
        * 로그인
        * 로그인 완료되면
@@ -76,24 +68,35 @@ public class ActivityStarter {
        *
        */
 
-      disposable = new LifeplusAPIRepository().selectMember(new UserNoBean(SuperModel.getInstance().getUserId()))
-        .subscribeOn(Schedulers.io())
-        .observeOn(AndroidSchedulers.mainThread())
-        .subscribe(loginResultBean -> {
-          Log.i("APP# ActivityStarter | launch", "| loginResultBean: " + loginResultBean.toPrettyJson());
-          if (new LoginModuleParser().parse(loginResultBean)) {
+      disposable = new APIMemberSelectModule().call(new UserNoBean(userId), new IAPIModuleListener<LoginResultBean>() {
+        @Override
+        public void onApiResult(LoginResultBean resultBean) {
+          // 정상 처리 됐음
+          if (new LoginModuleParser().parse(resultBean)) {
             // 정상 처리 됐음
             onLogin();
           }
           else {
             // 서버와 통신 완료 후 에러 리턴
-            showErrorPopup("login error - " + loginResultBean.getReturnMessage());
+            showErrorPopup("login error - " + resultBean.getReturnMessage());
           }
-        }, e -> {
-          // 서버와 통신이 되지 않은 에러
-          showErrorPopup("login error - " + e.getLocalizedMessage());
-        });
+        }
 
+        @Override
+        public void onApiError(String errorMessage) {
+          showErrorPopup("login error - " + errorMessage);
+        }
+      });
+    }
+    else if (preferences.isPermissionInfoDone() == false) {
+      intent = new Intent(context, PermissionInfoActivity.class);
+    }
+    else if (preferences.isTutorialDone() == false) {
+      intent = new Intent(context, OnBoardingActivity.class);
+    }
+    else if (StringUtil.isEmpty(userId)) {
+      // 비회원;
+      intent = new Intent(context, MainActivity.class);
     }
 
     if (null != intent) {

+ 1 - 1
app/src/sandbox/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIService.java

@@ -198,7 +198,7 @@ public class LifeplusAPIService implements LifeplusAPI {
         "            \"memr_stat_cd\": \"000\",\n" +                // 000: 정상, 200:휴면, 탈퇴:900
         "            \"lock_stat_cd\": \"000\", \n" +               // 정상: 000, 잠김 회원: 999
         "            \"ci_value\":\"5555555555\"}],\n" +
-        "    \"sp_rtn\": -200\n" +                                     // 휴면 -200 잠금 -100
+        "    \"sp_rtn\": 0\n" +                                     // 휴면 -200 잠금 -100
         " }";
 
       return new Gson().fromJson(result, LoginResultBean.class);