Bladeren bron

[공통][New] 시스템 전체 점검을 스플래시에서도 처리하도록 추가

hyodong.min 7 jaren geleden
bovenliggende
commit
e1bc9aaa66

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/activity/MainActivity.java

@@ -5,7 +5,9 @@ package kr.co.zumo.app.lifeplus.activity;
 
 import android.content.Intent;
 
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
+import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.tool.ReviewCounter;
 
@@ -23,6 +25,8 @@ public class MainActivity extends ActivityBaseScreen {
 
   @Override
   protected void render() {
+    ActivityDeliveryHelper.getInstance().shipTo(getHelper(DeliveryHelper.class));
+
     // ScreenStarter 에서 설정된 프래그먼트를 선택한다.
     int fragmentFlag = getIntent().getIntExtra(ScreenStarter.FLAG_FRAGMENT, ScreenStarter.START_FROM_MAIN);
     int screenId = new ScreenStarterIDMapper().getScreenId(fragmentFlag);

+ 42 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ScreenStarter.java

@@ -10,6 +10,8 @@ import android.util.Log;
 import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.LoginResultBean;
+import kr.co.zumo.app.lifeplus.bean.api.PopupInfoListBean;
+import kr.co.zumo.app.lifeplus.bean.api.PopupInfoResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
 import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
@@ -17,6 +19,8 @@ import kr.co.zumo.app.lifeplus.model.module.APIError;
 import kr.co.zumo.app.lifeplus.model.module.APILoginStatusMapper;
 import kr.co.zumo.app.lifeplus.model.module.APIMemberSelectModule;
 import kr.co.zumo.app.lifeplus.model.module.APIModuleSimpleListener;
+import kr.co.zumo.app.lifeplus.model.module.APIPopupLoadModule;
+import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -26,6 +30,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
 import kr.co.zumo.app.lifeplus.view.dialog.IAttribute;
 import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
+import kr.co.zumo.app.lifeplus.view.screen.main.SystemPopupModelHelper;
 
 /**
  * ScreenStarter
@@ -43,7 +48,7 @@ public class ScreenStarter {
 
   public static final int START_FROM_MAIN = 0;
   public static final int START_FROM_NETWORK_ERROR = 1;
-  //public static final int START_FROM_PERMISSION_INFO = 2;
+  public static final int START_FROM_SYSTEM_CHECK = 2;
   public static final int START_FROM_ON_BOARDING = 3;
   public static final int START_FROM_MEMBER_BLOCK = 4;
   public static final int START_FROM_MEMBER_REST = 5;
@@ -65,13 +70,20 @@ public class ScreenStarter {
   public void launch(boolean isConnected, IListener listener) {
     this.listener = listener;
     Log.i("APP# ScreenStarter | launch", "| Network Connected ==> " + isConnected);
-    LifeplusPreferences preferences = SuperModel.getInstance().getPreferences();
-
-    String userId = SuperModel.getInstance().getUserId();
     if (isConnected == false) {
       gotoScreen(START_FROM_NETWORK_ERROR);
     }
-    else if (StringUtil.isFull(userId)) {
+    else {
+      // popup 데이터 로딩 ->
+      loadPopupInfo();
+    }
+  }
+
+  protected void launchInternal() {
+    LifeplusPreferences preferences = SuperModel.getInstance().getPreferences();
+
+    String userId = SuperModel.getInstance().getUserId();
+    if (StringUtil.isFull(userId)) {
       /**
        * 로그인
        * 로그인 완료되면
@@ -91,7 +103,32 @@ public class ScreenStarter {
       // 비회원;
       gotoScreen(START_FROM_MAIN);
     }
+  }
 
+  public void loadPopupInfo() {
+    disposable = new APIPopupLoadModule().call(new RequestBean(), new APIModuleSimpleListener<PopupInfoResultBean>() {
+      @Override
+      public void onApiSuccess(PopupInfoResultBean resultBean) {
+        PopupInfoListBean popupInfoListBean = resultBean.getData();
+        if (null != popupInfoListBean) {
+          SystemPopupModelHelper.getInstance().setSystemPopupBeans(popupInfoListBean.getSystemPopupList());
+        }
+
+        if (SystemPopupModelHelper.getInstance().isClosing()) {
+          // 시스템 점검 중...
+          ActivityDeliveryHelper.getInstance().setPackaging(SystemPopupModelHelper.getInstance().getMatchedBean());
+          gotoScreen(START_FROM_SYSTEM_CHECK);
+        }
+        else {
+          launchInternal();
+        }
+      }
+
+      @Override
+      public void onApiError(String errorMessage, APIError error) {
+        showErrorPopup(errorMessage);
+      }
+    });
   }
 
   private void login() {

+ 3 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ScreenStarterIDMapper.java

@@ -30,9 +30,9 @@ public class ScreenStarterIDMapper {
       case ScreenStarter.START_FROM_ON_BOARDING:
         screenId = ScreenID.ON_BOARDING;
         break;
-//      case ScreenStarter.START_FROM_PERMISSION_INFO:
-//        screenId = ScreenID.PERMISSION_INFO;
-//        break;
+      case ScreenStarter.START_FROM_SYSTEM_CHECK:
+        screenId = ScreenID.SYSTEM_CHECK;
+        break;
       case ScreenStarter.START_FROM_MEMBER_BLOCK:
         screenId = ScreenID.MEMBER_BLOCK;
         break;

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPI.java

@@ -233,10 +233,10 @@ public interface LifeplusAPI {
   /***********************************
    * 코인
    ***********************************/
-  @POST("mapi/cp/getCoinInfo.plus")
+  @POST("mapi/my/getCoinInfo.plus")
   Single<CoinInfoResultBean> getCoinInfo(@Body CoinInfoRequestBean bean);
 
-  @POST("mapi/cp/getExtnPrrmCoinInfo.plus")
+  @POST("mapi/my/getExtnPrrmCoinInfo.plus")
   Single<CoinExtinctionResultBean> getCoinExtinction(@Body RequestBean bean);
 
   @POST("mapi/my/mybnerlist.plus")

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/common/ServiceCheckModel.java

@@ -1,5 +1,6 @@
 package kr.co.zumo.app.lifeplus.view.screen.common;
 
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusData;
 import kr.co.zumo.app.lifeplus.bean.api.SystemPopupBean;
 import kr.co.zumo.app.lifeplus.model.Model;
 
@@ -59,4 +60,8 @@ public class ServiceCheckModel extends Model {
   protected void pauseInternal() {
 
   }
+
+  public boolean isClosing() {
+    return LifeplusData.isTrue(systemPopupBean.getAllMenuAppling());
+  }
 }

+ 12 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/common/ServiceCheckPresenter.java

@@ -2,7 +2,6 @@ package kr.co.zumo.app.lifeplus.view.screen.common;
 
 import android.util.Log;
 
-import kr.co.zumo.app.lifeplus.bean.api.LifeplusData;
 import kr.co.zumo.app.lifeplus.bean.api.SystemPopupBean;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
@@ -74,9 +73,18 @@ public class ServiceCheckPresenter extends Presenter<ServiceCheckModel, IService
 
   }
 
+  private void exit() {
+    onCommand(new ExitCommand());
+  }
+
   @Override
   public boolean onBackPressedInternal() {
-    back(ScreenID.MAIN);
+    if (model.isClosing()) {
+      exit();
+    }
+    else {
+      back(ScreenID.MAIN);
+    }
     return true;
   }
 
@@ -90,7 +98,7 @@ public class ServiceCheckPresenter extends Presenter<ServiceCheckModel, IService
         onBackPressed();
         break;
       case Event.CONFIRM:
-        onCommand(new ExitCommand());
+        exit();
         break;
       default:
         break;
@@ -101,7 +109,7 @@ public class ServiceCheckPresenter extends Presenter<ServiceCheckModel, IService
   public void onScreenReady() {
     view.setTitle(model.getSystemPopupBean().getTitle());
     view.setDescription(model.getSystemPopupBean().getDescription());
-    view.setOneButton(LifeplusData.isTrue(model.getSystemPopupBean().getAllMenuAppling()));
+    view.setOneButton(model.isClosing());
   }
 
   @Override