package com.yidianling.avchatkit.config;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import com.netease.nimlib.sdk.avchat.model.AVChatServerAddresses;
import org.json.JSONException;
import org.json.JSONObject;
/**
* 网易云信音视频私有化配置项
*/
public class AVPrivatizationConfig {
private static final String KEY_NRTC_SERVER = "nrtc_server";
private static final String KEY_NRTC_ROOMSERVER = "nrtc_roomserver";
private static final String KEY_KIBANA_SERVER = "kibana_server";
private static final String KEY_STATISTIC_SERVER = "statistic_server";
private static final String KEY_NETDETECT_SERVER = "netdetect_server";
private static final String KEY_COMPAT_SERVER = "compat_server";
private static final String SHARE_NAME = "nim_demo_private_config";
private static final String KEY_CONFIG_ENABLE = "private_config_enable";
private static final String KEY_CONFIG_JSON = "private_config_json";
public static AVChatServerAddresses getServerAddresses(Context context) {
/**
* KEY_CONFIG_JSON 来源于IM demo 的私有化配置 , 参考DemoPrivatizationConfig
*/
String configStr = getSP(context).getString(KEY_CONFIG_JSON, null);
if (TextUtils.isEmpty(configStr)) {
return null;
}
if (isPrivateDisable(context)) {
return null;
}
AVChatServerAddresses rtcServerAddresses = null;
try {
JSONObject jsonObject = new JSONObject(configStr);
rtcServerAddresses = new AVChatServerAddresses();
// rtcServerAddresses.channelServer = jsonObject.optString(KEY_NRTC_SERVER,null);
rtcServerAddresses.roomServer = jsonObject.optString(KEY_NRTC_ROOMSERVER, null);
rtcServerAddresses.statisticsServer = jsonObject.optString(KEY_KIBANA_SERVER, null);
rtcServerAddresses.functionServer = jsonObject.optString(KEY_STATISTIC_SERVER, null);
rtcServerAddresses.netDetectServer = jsonObject.optString(KEY_NETDETECT_SERVER, null);
rtcServerAddresses.compatServer = jsonObject.optString(KEY_COMPAT_SERVER, null);
} catch (JSONException e) {
e.printStackTrace();
}
return rtcServerAddresses;
}
private static boolean isPrivateDisable(Context context) {
return !getSP(context).getBoolean(KEY_CONFIG_ENABLE, false);
}
private static SharedPreferences getSP(Context context) {
return context.getSharedPreferences(SHARE_NAME, Context.MODE_PRIVATE);
}
}