package com.tencent.xweb.util; import android.content.SharedPreferences; import android.text.TextUtils; import com.tencent.xweb.CommandCfgPlugin; import com.tencent.xweb.DeprecatedOutsideXWebSdk; import java.net.URI; import java.text.SimpleDateFormat; import java.util.Date; import org.xwalk.core.XWalkEnvironment; public class XWebUpdateConfigUtil { public static final String DOWNLOAD_CONFIG_URL = "https://dldir1v6.qq.com/weixin/android/wxweb/updateConfig.xml"; public static final String DOWNLOAD_CONFIG_URL_THIRD_APP = "https://dldir1v6.qq.com/weixin/android/wxweb/updateConfig_public.xml"; public static final String DOWNLOAD_EXP_CONFIG_URL = "https://dldir1v6.qq.com/weixin/android/wxweb/updateConfig_test.xml"; public static final String DOWNLOAD_PLUGIN_UPDATE_CONFIG_URL = "https://dldir1v6.qq.com/weixin/android/wxweb/plugin/pluginUpdateConfig.xml"; public static final String DOWNLOAD_PLUGIN_UPDATE_CONFIG_URL_THIRD_APP = "https://dldir1v6.qq.com/weixin/android/wxweb/plugin/pluginUpdateConfig_public.xml"; public static final String DOWNLOAD_PLUGIN_UPDATE_EXP_CONFIG_URL = "https://dldir1v6.qq.com/weixin/android/wxweb/plugin/pluginUpdateConfig_exp.xml"; public static final String DOWNLOAD_PLUGIN_UPDATE_TEST_CONFIG_URL = "https://dldir1v6.qq.com/weixin/android/wxweb/plugin/pluginUpdateConfig_test.xml"; public static final String DOWNLOAD_URL_PREFIX_FOR_BASE_CONFIG = "https://dldir1v6.qq.com/weixin/android/wxweb/"; public static final String DOWNLOAD_URL_PREFIX_FOR_PLUGIN_CONFIG = "https://dldir1v6.qq.com/weixin/android/wxweb/plugin/"; private static final String SP_KEY_PLUGIN_TEST_CONFIG_URL = "XWEB_PLUGIN_TEST_CONFIG_URL"; private static final String SP_KEY_TEST_CONFIG_URL = "XWEB_TEST_CONFIG_URL"; public static final String TAG = "XWebUpdateConfigUtil"; public static final int XWALK_PLUGIN_UPDATE_PERIOD_DEFAULT = 90000000; private static long sBaseConfigUpdatePeriod = 0; private static int sPluginConfigUpdatePeriod = -1; private static String sStrTempBaseConfigUrl; private static String sStrTempPluginConfigUrl; public static long getBaseConfigUpdatePeriod() { return sBaseConfigUpdatePeriod; } public static String getBaseConfigUrl() { String str; String testBaseConfigUrl = getTestBaseConfigUrl(); if (isValidConfigHost(testBaseConfigUrl)) { XWebLog.addInitializeLog(TAG, "use test config url : " + testBaseConfigUrl); return testBaseConfigUrl; } String tempBaseConfigUrl = getTempBaseConfigUrl(); if (isValidConfigHost(tempBaseConfigUrl)) { XWebLog.addInitializeLog(TAG, "use temp config url : " + tempBaseConfigUrl); return tempBaseConfigUrl; } if (XWalkEnvironment.getBuildConfigThirdPartyRelease()) { str = DOWNLOAD_CONFIG_URL_THIRD_APP; } else { str = DOWNLOAD_CONFIG_URL; } XWebLog.addInitializeLog(TAG, "use release config url = " + str); return str; } public static int getPluginConfigUpdatePeriod() { return sPluginConfigUpdatePeriod; } public static String getPluginConfigUrl() { String str; String testPluginConfigUrl = getTestPluginConfigUrl(); if (isValidConfigHost(testPluginConfigUrl)) { XWebLog.addInitializeLog(TAG, "plugin use test config url: " + testPluginConfigUrl); return testPluginConfigUrl; } String tempPluginConfigUrl = getTempPluginConfigUrl(); if (isValidConfigHost(tempPluginConfigUrl)) { XWebLog.addInitializeLog(TAG, "plugin use temp config url: " + tempPluginConfigUrl); return tempPluginConfigUrl; } if (XWalkEnvironment.getBuildConfigThirdPartyRelease()) { str = DOWNLOAD_PLUGIN_UPDATE_CONFIG_URL_THIRD_APP; } else { str = DOWNLOAD_PLUGIN_UPDATE_CONFIG_URL; } XWebLog.addInitializeLog(TAG, "plugin use release config url: " + str); return str; } public static int getPluginUpdatePeriod() { int pluginConfigUpdatePeriod = getPluginConfigUpdatePeriod(); if (pluginConfigUpdatePeriod > 0) { XWebLog.addInitializeLog(TAG, "getPluginUpdatePeriod, use temp period:" + pluginConfigUpdatePeriod); return pluginConfigUpdatePeriod; } int cmdPluginUpdatePeriod = CommandCfgPlugin.getInstance().getCmdPluginUpdatePeriod(); if (cmdPluginUpdatePeriod > 0) { XWebLog.addInitializeLog(TAG, "getPluginUpdatePeriod, use cmd period:" + cmdPluginUpdatePeriod); return cmdPluginUpdatePeriod; } XWebLog.addInitializeLog(TAG, "getPluginUpdatePeriod, use default period:90000000"); return XWALK_PLUGIN_UPDATE_PERIOD_DEFAULT; } public static String getTempBaseConfigUrl() { return sStrTempBaseConfigUrl; } public static String getTempPluginConfigUrl() { return sStrTempPluginConfigUrl; } public static String getTestBaseConfigUrl() { SharedPreferences sharedPreferencesForWebDebug = XWebSharedPreferenceUtil.getSharedPreferencesForWebDebug(); if (sharedPreferencesForWebDebug == null) { XWebLog.e(TAG, "getTestBaseConfigUrl, sp is null"); return ""; } String string = sharedPreferencesForWebDebug.getString(SP_KEY_TEST_CONFIG_URL, ""); if (string == null || string.trim().isEmpty()) { return ""; } return string; } public static String getTestPluginConfigUrl() { SharedPreferences sharedPreferencesForWebDebug = XWebSharedPreferenceUtil.getSharedPreferencesForWebDebug(); if (sharedPreferencesForWebDebug == null) { XWebLog.e(TAG, "getTestPluginConfigUrl, sp is null"); return ""; } String string = sharedPreferencesForWebDebug.getString(SP_KEY_PLUGIN_TEST_CONFIG_URL, ""); if (string == null || string.trim().isEmpty()) { return ""; } return string; } public static boolean isValidConfigHost(String str) { if (str != null && !TextUtils.isEmpty(str) && !TextUtils.isEmpty(str.trim())) { XWebLog.i(TAG, "isValidConfigHost, url:" + str); try { URI uri = new URI(str.trim()); if (!uri.getScheme().equals("https")) { return false; } if (uri.getHost().equals("dldir1.qq.com") || uri.getHost().equals("dldir1v6.qq.com")) { return true; } return false; } catch (Throwable th5) { XWebLog.e(TAG, "isValidConfigHost error", th5); } } return false; } @DeprecatedOutsideXWebSdk @Deprecated public static void setBaseConfigUpdatePeriod(long j15) { sBaseConfigUpdatePeriod = j15; } @DeprecatedOutsideXWebSdk @Deprecated public static void setPluginConfigUpdatePeriod(int i15) { sPluginConfigUpdatePeriod = i15; } @DeprecatedOutsideXWebSdk @Deprecated public static void setTempBaseConfigUrl(String str) { sStrTempBaseConfigUrl = str; } @DeprecatedOutsideXWebSdk @Deprecated public static void setTempPluginConfigUrl(String str) { sStrTempPluginConfigUrl = str; } public static boolean setTestBaseConfigUrl(String str) { SharedPreferences sharedPreferencesForWebDebug = XWebSharedPreferenceUtil.getSharedPreferencesForWebDebug(); if (sharedPreferencesForWebDebug == null) { XWebLog.e(TAG, "setTestBaseConfigUrl, sp is null"); return false; } SharedPreferences.Editor edit = sharedPreferencesForWebDebug.edit(); if (str == null || str.trim().isEmpty()) { edit.remove(SP_KEY_TEST_CONFIG_URL); } else if (!isValidConfigHost(str)) { XWebLog.e(TAG, "setTestBaseConfigUrl, url is invalid"); return false; } else { edit.putString(SP_KEY_TEST_CONFIG_URL, str.trim()); } return edit.commit(); } public static boolean setTestPluginConfigUrl(String str) { SharedPreferences sharedPreferencesForWebDebug = XWebSharedPreferenceUtil.getSharedPreferencesForWebDebug(); if (sharedPreferencesForWebDebug == null) { XWebLog.e(TAG, "setTestPluginConfigUrl, sp is null"); return false; } SharedPreferences.Editor edit = sharedPreferencesForWebDebug.edit(); if (str == null || str.trim().isEmpty()) { edit.remove(SP_KEY_PLUGIN_TEST_CONFIG_URL); } else if (!isValidConfigHost(str)) { XWebLog.e(TAG, "setTestPluginConfigUrl, url is invalid"); return false; } else { edit.putString(SP_KEY_PLUGIN_TEST_CONFIG_URL, str.trim()); } return edit.commit(); } @DeprecatedOutsideXWebSdk @Deprecated public static boolean setTempBaseConfigUrl(String str, String str2) { if (!TextUtils.isEmpty(str2)) { try { if (new Date().after(new SimpleDateFormat("yyyyMMdd").parse(str2))) { XWebLog.w(TAG, "today is after end date, set temp update config failed"); return false; } } catch (Throwable th5) { XWebLog.e(TAG, "setTempUpdateConfigUrl, error", th5); return false; } } sStrTempBaseConfigUrl = str; return true; } @DeprecatedOutsideXWebSdk @Deprecated public static void setTempPluginConfigUrl(String str, String str2) { if (!TextUtils.isEmpty(str2)) { try { if (new Date().after(new SimpleDateFormat("yyyyMMdd").parse(str2))) { XWebLog.w(TAG, "today is after end date, set temp plugin update config failed"); return; } } catch (Throwable th5) { XWebLog.e(TAG, "setTempPluginConfigUrl, error", th5); return; } } sStrTempPluginConfigUrl = str; } }