package com.gh.common.constant; import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; import com.gh.common.util.GsonUtils; import com.gh.common.util.PackageHelper; import com.gh.common.util.PackageUtils; import com.gh.common.util.SPUtils; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameGuidePopupEntity; import com.gh.gamecenter.entity.NewSettingsEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.retrofit.BiResponse; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; import org.greenrobot.eventbus.EventBus; import java.util.List; import androidx.annotation.Nullable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; public class Config { public static final String API_HOST = BuildConfig.API_HOST; public static final String SENSITIVE_API_HOST = BuildConfig.SENSITIVE_API_HOST; /** * 需要配置的请使用{@link PreferenceManager#getDefaultSharedPreferences(Context)} */ // Third-Party confs public static final String WECHAT_APPID = BuildConfig.WECHAT_APPID; public static final String WECHAT_SECRET = BuildConfig.WECHAT_SECRET; public static final String TENCENT_APPID = BuildConfig.TENCENT_APPID; public static final String WEIBO_APPKEY = BuildConfig.WEIBO_APPKEY; public static final String MIPUSH_APPID = BuildConfig.MIPUSH_APPID; public static final String MIPUSH_APPKEY = BuildConfig.MIPUSH_APPKEY; public static final String MTA_APPKEY = BuildConfig.MTA_APPKEY; public static final String TALKINGDATA_APPID = BuildConfig.TD_APPID;// TalkingData public static final String UMENG_APPKEY = BuildConfig.UMENG_APPKEY; public static final String UMENG_MESSAGE_SECRET = BuildConfig.UMENG_MESSAGE_SECRET; public static final String BUGLY_APPID = BuildConfig.BUGLY_APPID; public static final String LETO_APPID = BuildConfig.LETO_APPID; public static final String TTAD_APPID = BuildConfig.TTAD_APPID; public static final String DOUYIN_CLIENTKEY = BuildConfig.DOUYIN_CLIENTKEY; public static final String DOUYIN_CLIENTSECRET = BuildConfig.DOUYIN_CLIENTSECRET; public static final String QUICK_LOGIN_APPID = BuildConfig.QUICK_LOGIN_APPID; public static final String QUICK_LOGIN_APPKEY = BuildConfig.QUICK_LOGIN_APPKEY; // http://www.ghzs666.com/article/${articleId}.html public static final String URL_ARTICLE = "http://www.ghzs666.com/article/"; // ghzs/ghzs666 统一 public static final String PATCHES = "patches"; public static final String DEFAULT_CHANNEL = "GH_TEST2"; public static final String DEFAULT_CHANNEL_FOR_RELEASE = "GH_LOST"; // 正式包的缺省渠道,避免因渠道丢失而回落到测试渠道 private static String SETTINGS_KEY = "settingsKey"; private static SettingsEntity mSettingsEntity; private static NewSettingsEntity mNewSettingsEntity; private static GameGuidePopupEntity mGameGuidePopupEntity; public static final String FIX_DOWNLOAD_KEY = "isFixDownload"; public static final String FIX_PLUGIN_KEY = "isFixPlugin"; public static final String FIX_ARTICLE_KEY = "isFixArticle"; public static final String FIX_COMMUNITY_KEY = "isFixCommunity"; public static final int VIDEO_PAGE_SIZE = 21; // 视频列表大多都是一行3个 public static boolean isShow() { if (getPreferences().getBoolean(FIX_DOWNLOAD_KEY, false)) return true; if (!isExistDownloadFilter()) return false; for (SettingsEntity.Download entity : getSettings().getDownload()) { if ("all".equals(entity.getGame())) { if (entity.getPluginfy() && "normal".equals(entity.getPolicy()) && filterTime(entity.getTime())) { return true; } } } return false; } public static String getExceptionMsg() { return getPreferences().getString("errMsg", null); } public static void setExceptionMsg(String errMsg) { SPUtils.setString(getPreferences(), "errMsg", errMsg); //先用apply(),保存不了再用commit() 9.0机型保存不了信息 } public static boolean isShowDownload(String gameId) { if (getPreferences().getBoolean(FIX_DOWNLOAD_KEY, false)) return true; if (TextUtils.isEmpty(gameId) || !isExistDownloadFilter()) return false; for (SettingsEntity.Download entity : getSettings().getDownload()) { if (gameId.equals(entity.getGame())) { if ("normal".equals(entity.getPolicy()) && filterTime(entity.getTime())) { return true; } else { return false; } } else if ("all".equals(entity.getGame())) { if ("normal".equals(entity.getPolicy()) && filterTime(entity.getTime())) { return true; } } } return false; } public static boolean isShowPlugin(String gameId) { SharedPreferences preferences = getPreferences(); boolean isFixPlugin = preferences.getBoolean(FIX_PLUGIN_KEY, false); if (isFixPlugin) return true; if (TextUtils.isEmpty(gameId) || !isExistDownloadFilter()) return false; for (SettingsEntity.Download entity : getSettings().getDownload()) { if (gameId.equals(entity.getGame())) { if (entity.getPluginfy() && filterTime(entity.getTime())) { return true; } else { return false; } } if ("all".equals(entity.getGame())) { if (entity.getPluginfy() && filterTime(entity.getTime())) { preferences.edit().putBoolean(FIX_PLUGIN_KEY, true).apply(); return true; } } } return false; } public static boolean isShowPlugin() { SharedPreferences preferences = getPreferences(); boolean isFixPlugin = preferences.getBoolean(FIX_PLUGIN_KEY, false); if (isFixPlugin) return true; if (!isExistDownloadFilter()) return false; for (SettingsEntity.Download entity : getSettings().getDownload()) { if ("all".equals(entity.getGame())) { if (entity.getPluginfy() && filterTime(entity.getTime())) { preferences.edit().putBoolean(FIX_PLUGIN_KEY, true).apply(); return true; } } } return false; } private static boolean filterTime(SettingsEntity.Download.TimeEntity timeEntity) { long end = timeEntity.getEnd(); long start = timeEntity.getStart(); long curTime = Utils.getTime(HaloApp.getInstance().getApplication()); if ((start == 0 || curTime >= start) && (end == 0 || curTime <= end)) { return true; } return false; } public static void setSettings(SettingsEntity settingsEntity) { getPreferences().edit().putString(SETTINGS_KEY, GsonUtils.toJson(settingsEntity)).apply(); mSettingsEntity = settingsEntity; // 更新 FIX_ARTICLE_KEY 状态 mSettingsEntity.showArticleEntrance(); // 加载完设置后刷新下 PackageHelper.initList(); } @Nullable public static SettingsEntity getSettings() { if (mSettingsEntity == null) { try { String json = getPreferences().getString(SETTINGS_KEY, null); if (!TextUtils.isEmpty(json)) { mSettingsEntity = GsonUtils.fromJson(json, SettingsEntity.class); } } catch (Exception e) { e.printStackTrace(); } } return mSettingsEntity; } @Nullable public static NewSettingsEntity getNewSettingsEntity() { if (mNewSettingsEntity == null) { try { String json = SPUtils.getString(Constants.SP_NEW_SETTINGS); if (!TextUtils.isEmpty(json)) { mNewSettingsEntity = GsonUtils.fromJson(json, NewSettingsEntity.class); } } catch (Exception e) { e.printStackTrace(); } } return mNewSettingsEntity; } @Nullable public static GameGuidePopupEntity getGameGuidePopupEntity() { if (mGameGuidePopupEntity == null) { try { String json = SPUtils.getString(Constants.SP_GAME_DETAIL_INSTALL_GUIDE_CONTENT); if (!TextUtils.isEmpty(json)) { mGameGuidePopupEntity = GsonUtils.fromJson(json, GameGuidePopupEntity.class); } } catch (Exception e) { e.printStackTrace(); } } return mGameGuidePopupEntity; } private static boolean isExistDownloadFilter() { if (getSettings() == null || getSettings().getDownload() == null || getSettings().getDownload().size() == 0) { return false; } else { return true; } } public static void filterPluginArticle(List list) { if (isShowPlugin() || list == null) return; for (int i = 0; i < list.size(); i++) { NewsEntity newsEntity = list.get(i); String title = newsEntity.getTitle(); if (!TextUtils.isEmpty(title) && title.contains("插件")) { list.remove(i); i--; } } } public static SharedPreferences getPreferences() { return PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication()); } public static boolean isExistHideFunction() { SharedPreferences preferences = getPreferences(); if (!preferences.getBoolean(FIX_DOWNLOAD_KEY, false)) return true; if (!preferences.getBoolean(FIX_PLUGIN_KEY, false)) return true; if (!preferences.getBoolean(FIX_COMMUNITY_KEY, false)) return true; if (!preferences.getBoolean(FIX_ARTICLE_KEY, false)) return true; return false; } public static boolean isGameDomeSwitchOpen() { return getSettings() != null && getSettings().getGameDomeSwitch().equals("on"); } public static boolean isPermissionPopupSwitchOpen() { return getSettings() != null && getSettings().getPermissionPopupSwitch().equals("on"); } public static void fixHideFunction() { SharedPreferences preferences = PreferenceManager. getDefaultSharedPreferences(HaloApp.getInstance().getApplication()); SharedPreferences.Editor editor = preferences.edit(); editor.putBoolean(Config.FIX_DOWNLOAD_KEY, true); editor.putBoolean(Config.FIX_ARTICLE_KEY, true); editor.putBoolean(Config.FIX_COMMUNITY_KEY, true); editor.putBoolean(Config.FIX_PLUGIN_KEY, true); editor.apply(); } @SuppressLint("CheckResult") public static void getGhzsSettings() { String channel = HaloApp.getInstance().getChannel(); RetrofitManager.getInstance(HaloApp.getInstance().getApplication()) .getSensitiveApi().getSettings(PackageUtils.getGhVersionName(), channel) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Response() { @Override public void onResponse(SettingsEntity response) { Config.setSettings(response); // 意见反馈 SharedPreferences.Editor edit = getPreferences().edit(); edit.putString(SuggestionActivity.SUGGESTION_HINT_TYPE, GsonUtils.toJson(response.getSuggestion())); edit.apply(); if (!getPreferences().getBoolean(Config.FIX_DOWNLOAD_KEY, false) && Config.isShow()) { getPreferences().edit().putBoolean(Config.FIX_DOWNLOAD_KEY, true).apply(); } EventBus.getDefault().post(new EBReuse("Refresh")); } }); RetrofitManager.getInstance(HaloApp.getInstance().getApplication()) .getApi().getNewSettings(Build.MANUFACTURER, Build.MODEL, channel, Build.VERSION.SDK_INT, BuildConfig.VERSION_NAME) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BiResponse() { @Override public void onSuccess(NewSettingsEntity data) { mNewSettingsEntity = data; SPUtils.setString(Constants.SP_NEW_SETTINGS, GsonUtils.toJson(data)); } }); RetrofitManager.getInstance(HaloApp.getInstance().getApplication()) .getApi().getGameGuidePopup(Build.MANUFACTURER, Build.VERSION.RELEASE, Build.MODEL, channel, BuildConfig.VERSION_NAME) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BiResponse() { @Override public void onSuccess(GameGuidePopupEntity data) { mGameGuidePopupEntity = data; SPUtils.setString(Constants.SP_GAME_DETAIL_INSTALL_GUIDE_CONTENT, GsonUtils.toJson(data)); } }); } }