package com.pandocloud.freeiot.ui.urlconfig;
import java.lang.reflect.Field;
import android.text.TextUtils;
import com.pandocloud.android.api.AbsOpenApi;
import com.pandocloud.freeiot.utils.LogUtils;
public class UrlConfigManager {
public static final int DEVELOP_STATE = 1;
public static final int PREPRODUCT_STATE = 2;
public static final int RELEASE_STATE = 3;
private static int sCurrentState = RELEASE_STATE;
static {
updateUrl(sCurrentState);
}
private UrlConfigManager() {
}
protected static String API_HOST_URL;
public static int getCurrentState() {
return sCurrentState;
}
public static void setCurrentState(int currentState) {
UrlConfigManager.sCurrentState = currentState;
}
public static void updateUrl(int newState) {
sCurrentState = newState;
switch (newState) {
case DEVELOP_STATE: {
API_HOST_URL = DevelopUrlConfig.API_HOST_DEV_URL;
}
break;
case PREPRODUCT_STATE: {
API_HOST_URL = PreProductUrlConfig.API_HOST_PRE_URL;
}
break;
case RELEASE_STATE: {
API_HOST_URL = ReleaseUrlConfig.API_HOST_RELEASE_URL;
}
break;
default:
break;
}
updateApiHostUrl();
}
public static void updateApiHostUrl() {
Class absOpenApiClazz = AbsOpenApi.class;
try {
Field[] fields = absOpenApiClazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String str = field.get(null).toString();
if (!TextUtils.isEmpty(str) && str.contains("pandocloud.com")) {
LogUtils.e("UrlConfigManager", "url before set: " + str);
field.set(null, API_HOST_URL);
String result = field.get(null).toString();
LogUtils.e("UrlConfigManager", "url set result: " + result);
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
public static String getApiHostUrl() {
return API_HOST_URL;
}
public static final class DevelopUrlConfig {
public static final String API_HOST_DEV_URL = "https://testapi.pandocloud.com";
}
public static final class PreProductUrlConfig {
public static final String API_HOST_PRE_URL = "https://stageapi.pandocloud.com";
}
public static final class ReleaseUrlConfig {
public static final String API_HOST_RELEASE_URL = "https://api.pandocloud.com";
}
}