瀏覽代碼

[공통][New] 비정상 회원 시 로그인 화면으로 이동

hyodong.min 6 年之前
父節點
當前提交
052371ee4f

+ 13 - 8
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ScreenStarter.java

@@ -179,7 +179,16 @@ public class ScreenStarter implements IModuleEmergencyHandler {
 
         @Override
         public void onApiError(String errorMessage, APIError error) {
-          showErrorPopup(errorMessage, () -> exit());
+
+          showErrorPopup(errorMessage, () -> {
+            if (error.getCode() == APIError.ERROR_UNREGISTER_MEMBER) {
+              // 등록하지 않은 사람
+              gotoScreen(START_LOGIN);
+            }
+            else {
+              exit();
+            }
+          });
         }
       })
     );
@@ -197,10 +206,10 @@ public class ScreenStarter implements IModuleEmergencyHandler {
       // 미가입
       String message = resultBean.getReturnMessage();
       if (StringUtil.isFull(message)) {
-        showErrorPopup(message, () -> exit());
+        showErrorPopup(message, () -> gotoScreen(START_LOGIN));
       }
       else {
-        showErrorPopup(ResourceUtil.getString(R.string.quit_member), () -> exit());
+        showErrorPopup(ResourceUtil.getString(R.string.quit_member), () -> gotoScreen(START_LOGIN));
       }
     }
     else {
@@ -210,14 +219,10 @@ public class ScreenStarter implements IModuleEmergencyHandler {
 
       // 정상 -> 로그인 시 코인 지급 내역을 메인에서 표시하기 위해서 bean 전달
       ActivityDeliveryHelper.getInstance().setPackaging(resultBean.getData());
-      gotoMainOrUnlock();
+      gotoScreen(START_FROM_MAIN);
     }
   }
 
-  private void gotoMainOrUnlock() {
-    gotoScreen(START_FROM_MAIN);
-  }
-
   private DialogBase alertDialog;
 
   private void showErrorPopup(String errorMessage, Runnable runnable) {

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APIError.java

@@ -23,6 +23,7 @@ public class APIError {
   public static final int ERROR_HTTP = 0;
   public static final int ERROR_INVALID_RESULT = 1;
   public static final int ERROR_REASON = 2;
+  public static final int ERROR_UNREGISTER_MEMBER = 3;
 
   private int code;
 

+ 5 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APILoginStatusMapper.java

@@ -64,7 +64,11 @@ public class APILoginStatusMapper extends APIModuleReasonListener<LoginResultBea
     }
     else {
       // 서버와 통신 완료 후 처리되지 않은 에러 코드 리턴
-      listener.onApiError(resultBean.getReturnMessage(), new APIError(APIError.ERROR_INVALID_RESULT));
+      int errrCode = APIError.ERROR_INVALID_RESULT;
+      if(memberStatusManager.isUnregisterMember() ) {
+        errrCode = APIError.ERROR_UNREGISTER_MEMBER;
+      }
+      listener.onApiError(resultBean.getReturnMessage(), new APIError(errrCode));
     }
   }
 }