|
|
@@ -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);
|
|
|
}
|
|
|
}
|