Browse Source

[ZUMO] 리모트 컨픽 - 서버상태 추가

yeongyun 6 years ago
parent
commit
6157b15cce

+ 38 - 11
app/src/main/java/kr/co/zumo/app/lifeplus/helper/AppVersionHelper.java

@@ -8,6 +8,10 @@ import android.support.annotation.IntDef;
 import android.util.Log;
 
 import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
+import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -41,6 +45,7 @@ public class AppVersionHelper {
 
   private static final String VERSION_LATEST = "newerVersion";
   private static final String VERSION_FORCE = "forceVersion";
+  private static final String SERVER_STATUS = "serverStatus";
 
   /**
    * dispose
@@ -71,17 +76,20 @@ public class AppVersionHelper {
 
           Log.d("APP# AppVersionHelper | fetch, 67", "|" + "current: " + StringUtil.getPureVersionString(AppUtil.getVersionName(), 3) + " new: " + getLatestVersion() + " force: " + getForceVersion());
 
-          // 업데이트 검사
-          if (StringUtil.hasNewVersion(currentVersion, getForceVersion())) {
-            // 강제 업데이트
-            listener.onAppUpdatable(IAppVersionListener.FLAG_FORCE);
-          }
-          else if (StringUtil.hasNewVersion(currentVersion, getLatestVersion())) {
-            // 선택 업데이트
-            listener.onAppUpdatable(IAppVersionListener.FLAG_LATEST);
-          }
-          else {
-            listener.onAppUpdatable(IAppVersionListener.FLAG_UNABLE);
+          String serverStatus = getServerStatus();
+          if(StringUtil.isFull(serverStatus)) {
+            listener.onServerMessage(serverStatus);
+          } else {
+            // 업데이트 검사
+            if (StringUtil.hasNewVersion(currentVersion, getForceVersion())) {
+              // 강제 업데이트
+              listener.onAppUpdatable(IAppVersionListener.FLAG_FORCE);
+            } else if (StringUtil.hasNewVersion(currentVersion, getLatestVersion())) {
+              // 선택 업데이트
+              listener.onAppUpdatable(IAppVersionListener.FLAG_LATEST);
+            } else {
+              listener.onAppUpdatable(IAppVersionListener.FLAG_UNABLE);
+            }
           }
         }
         else {
@@ -108,6 +116,23 @@ public class AppVersionHelper {
     return getVersion(version);
   }
 
+  public String getServerStatus() {
+    setConfig();
+    String serverStatus = firebaseRemoteConfig.getString(SERVER_STATUS);
+    JSONObject jsonObject;
+    try {
+      jsonObject = new JSONObject(serverStatus);
+      int status = jsonObject.getInt("status");
+      String message = jsonObject.getString("message");
+      if(status == 1) {
+        return message;
+      }
+    } catch (JSONException e) {
+      return "";
+    }
+      return "";
+  }
+
   /**
    * 강제 업데이트 버젼
    *
@@ -138,5 +163,7 @@ public class AppVersionHelper {
     @interface Flag {}
 
     void onAppUpdatable(@Flag int flag);
+
+    void onServerMessage(String message);
   }
 }

+ 10 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/splash/ScreenStarterPresenter.java

@@ -98,7 +98,10 @@ public abstract class ScreenStarterPresenter<M extends ScreenStarterModel, V ext
     Context context = App.getInstance().getContext();
 
     AppShieldHelper.getInstance().checkApp(context);
-    AppVersionHelper.getInstance().fetch(view.getActivity(), flag -> {
+    AppVersionHelper.getInstance().fetch(view.getActivity(), new AppVersionHelper.IAppVersionListener() {
+
+      @Override
+      public void onAppUpdatable(int flag) {
         switch (flag) {
           case AppVersionHelper.IAppVersionListener.FLAG_FORCE:
             // 강제 업데이트
@@ -115,7 +118,12 @@ public abstract class ScreenStarterPresenter<M extends ScreenStarterModel, V ext
             break;
         }
       }
-    );
+
+      @Override
+      public void onServerMessage(String message) {
+        showErrorDialog(message, () -> exit());
+      }
+    });
   }
 
   protected void launchStarter(boolean isConnected) {