From 39e5e2e9f9ff9931fab75a2224c0ae64e469bf84 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Fri, 15 Feb 2019 16:07:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=A0=E9=81=93=E5=8C=85=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=BC=80=E5=85=B3=E6=8E=A7=E5=88=B6=E8=A7=84=E5=88=99=E4=BC=98?= =?UTF-8?q?=E5=8C=96(=E6=9C=AA=E6=B5=8B=E8=AF=95)=20https://gitlab.ghzhush?= =?UTF-8?q?ou.com/pm/halo-app-issues/issues/448?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/base/AppUncaughtHandler.java | 2 +- .../java/com/gh/common/constant/Config.java | 61 ++++++++++++++----- .../java/com/gh/gamecenter/MainActivity.java | 8 +-- .../gamecenter/discover/DiscoverFragment.kt | 4 +- .../gh/gamecenter/entity/SettingsEntity.kt | 44 ++++++++++++- .../fragment/MainWrapperFragment.java | 2 +- .../gamedetail/fuli/FuLiViewModel.kt | 6 +- .../assistant/fragment/SettingsFragment.java | 13 ++-- app/src/main/res/layout/fragment_setting.xml | 4 +- app/src/main/res/values/strings.xml | 2 +- 10 files changed, 106 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/com/gh/base/AppUncaughtHandler.java b/app/src/main/java/com/gh/base/AppUncaughtHandler.java index a62befe03d..df51f1c986 100644 --- a/app/src/main/java/com/gh/base/AppUncaughtHandler.java +++ b/app/src/main/java/com/gh/base/AppUncaughtHandler.java @@ -75,7 +75,7 @@ public class AppUncaughtHandler implements UncaughtExceptionHandler { // 保存log到本地 public static void saveLocalLog(Context context, Throwable ex) { String errorMsg = Log.getStackTraceString(ex); - Config.setExceptionMsg(context, errorMsg); + Config.setExceptionMsg(errorMsg); // 保存到本地 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()); diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index aa4fabea73..82f4f724fd 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -51,9 +51,14 @@ public class Config { private static SettingsEntity mSettingsEntity; + 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 boolean isShow() { - if (PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication()) - .getBoolean("isFixDownload", false)) return true; + if (getPreferences().getBoolean(FIX_DOWNLOAD_KEY, false)) return true; if (!isExistDownloadFilter()) return false; @@ -64,23 +69,20 @@ public class Config { } } } - return false; } - public static String getExceptionMsg(Context context) { - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); - return sp.getString("errMsg", null); + public static String getExceptionMsg() { + return getPreferences().getString("errMsg", null); } - public static void setExceptionMsg(Context context, String errMsg) { - PreferenceManager.getDefaultSharedPreferences(context).edit().putString("errMsg", errMsg).apply(); + public static void setExceptionMsg(String errMsg) { + getPreferences().edit().putString("errMsg", errMsg).apply(); } public static boolean isShowDownload(String gameId) { - if (PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication()) - .getBoolean("isFixDownload", false)) return true; + if (getPreferences().getBoolean(FIX_DOWNLOAD_KEY, false)) return true; if (TextUtils.isEmpty(gameId) || !isExistDownloadFilter()) return false; @@ -114,8 +116,15 @@ public class Config { } else { return false; } - } else if ("all".equals(entity.getGame())) { + } + + SharedPreferences preferences = getPreferences(); + boolean isFixPlugin = preferences.getBoolean(FIX_PLUGIN_KEY, false); + if (isFixPlugin) return true; + + if ("all".equals(entity.getGame())) { if (entity.getPluginfy() && filterTime(entity.getTime())) { + preferences.edit().putBoolean(FIX_PLUGIN_KEY, true).apply(); return true; } } @@ -152,9 +161,7 @@ public class Config { } public static void setSettings(SettingsEntity settingsEntity) { - SharedPreferences.Editor edit = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication()).edit(); - edit.putString(SETTINGS_KEY, GsonUtils.getInstance().toJson(settingsEntity)).apply(); - + getPreferences().edit().putString(SETTINGS_KEY, GsonUtils.getInstance().toJson(settingsEntity)).apply(); mSettingsEntity = settingsEntity; } @@ -162,8 +169,7 @@ public class Config { public static SettingsEntity getSettings() { if (mSettingsEntity == null) { try { - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication()); - String json = sp.getString(SETTINGS_KEY, null); + String json = getPreferences().getString(SETTINGS_KEY, null); if (!TextUtils.isEmpty(json)) { mSettingsEntity = GsonUtils.getInstance().fromJsonBean(json, SettingsEntity.class); } @@ -195,4 +201,27 @@ public class Config { } } + 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 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(); + } } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 8f1f0e1a07..041af525f0 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -279,9 +279,9 @@ public class MainActivity extends BaseActivity { mPackageViewModel = ViewModelProviders.of(this, new PackageViewModel.Factory()).get(PackageViewModel.class); - final String message = Config.getExceptionMsg(this); + final String message = Config.getExceptionMsg(); if (!TextUtils.isEmpty(message)) { - Config.setExceptionMsg(this, null); + Config.setExceptionMsg(null); AppUncaughtHandler.reportException(this, new Throwable(message)); DialogUtils.showWarningDialog(this, "发生闪退", "光环助手刚刚发生了闪退,马上反馈以帮助我们更好地修复问题?(只需简单描述你刚才的操作)" , "暂不", "马上反馈", @@ -553,8 +553,8 @@ public class MainActivity extends BaseActivity { GsonUtils.Companion.getInstance().toJson(response.getSuggestion())); edit.apply(); - if (!mSp.getBoolean("isFixDownload", false) && Config.isShow()) { - mSp.edit().putBoolean("isFixDownload", true).apply(); + if (!mSp.getBoolean(Config.FIX_DOWNLOAD_KEY, false) && Config.isShow()) { + mSp.edit().putBoolean(Config.FIX_DOWNLOAD_KEY, true).apply(); } EventBus.getDefault().post(new EBReuse("Refresh")); diff --git a/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt b/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt index 94d4497827..d75b6c3951 100644 --- a/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.kt @@ -165,8 +165,8 @@ class DiscoverFragment : BaseFragment() { } private fun checkArticleStatus() { - val showArticleEntrance = Config.getSettings()?.showArticleEntrance - if (showArticleEntrance == "off") { + val showArticleEntrance = Config.getSettings()?.showArticleEntrance() + if (showArticleEntrance == false) { mDiscoverGameTrends.visibility = View.GONE mDiscoverInfo.visibility = View.GONE mDiscoverLibaoLine.visibility = View.GONE diff --git a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt index c5002e785e..6187a7fb8f 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt @@ -1,6 +1,9 @@ package com.gh.gamecenter.entity +import android.preference.PreferenceManager +import com.gh.common.constant.Config import com.google.gson.annotations.SerializedName +import com.halo.assistant.HaloApp data class SettingsEntity( var download: List? = listOf(), @@ -10,7 +13,7 @@ data class SettingsEntity( var image: Image? = null, var support: Support? = null, @SerializedName("community_entrance") - var communityEntrance: String? = "", + private var communityEntrance: String? = "", @SerializedName("game_comment_blacklist") var gameCommentBlackList: List? = listOf(), @SerializedName("game_download_blacklist") @@ -18,7 +21,44 @@ data class SettingsEntity( @SerializedName("ad") var adList: List? = listOf(), @SerializedName("article_entrance") - var showArticleEntrance: String = "on") { + private var articleEntrance: String = "on") { + + fun setCommunityEntrance(communityEntrance: String) { + this.communityEntrance = communityEntrance + } + + fun showCommunityEntrance(): Boolean { + val preferences = + PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().application) + val isFixCommunity = + preferences.getBoolean(Config.FIX_COMMUNITY_KEY, false) + if (isFixCommunity) return true + + if ("on" == communityEntrance) { + preferences.edit().putBoolean(Config.FIX_COMMUNITY_KEY, true).apply() + return true + } + return false + } + + fun setArticleEntrance(articleEntrance: String) { + this.articleEntrance = articleEntrance + } + + fun showArticleEntrance(): Boolean { + val preferences = + PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().application) + val isFixArticle = + preferences.getBoolean(Config.FIX_ARTICLE_KEY, false) + if (isFixArticle) return true + + if ("on" == articleEntrance) { + preferences.edit().putBoolean(Config.FIX_ARTICLE_KEY, true).apply() + return true + } + return false + } + data class Support( @SerializedName("qq-group") diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java index 091a4ae0d7..d5c9f2c9b8 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -203,7 +203,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { } } else if ("Refresh".equals(reuse.getType())) { SettingsEntity settings = Config.getSettings(); - if (settings != null && "off".equals(settings.getCommunityEntrance())) { + if (settings != null && !settings.showCommunityEntrance()) { mTabCommunity.setVisibility(View.GONE); } else { mTabCommunity.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt index 63708bfdc7..b4196ba897 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt @@ -176,13 +176,13 @@ class FuLiViewModel(application: Application, val itemList = ArrayList() var isExistServer = false var index = 0 - val showArticleEntrance = Config.getSettings()?.showArticleEntrance - if (showArticleEntrance == "on" && gameDetail.notice != null && gameDetail.notice!!.isNotEmpty()) { + val showArticleEntrance = Config.getSettings()?.showArticleEntrance() + if (showArticleEntrance == true && gameDetail.notice != null && gameDetail.notice!!.isNotEmpty()) { val fuLiData = FuLiItemData() fuLiData.notice = gameDetail.notice itemList.add(fuLiData) } - if (showArticleEntrance == "on" && mArticleList != null) { + if (showArticleEntrance == true && mArticleList != null) { val fuLiData = FuLiItemData() fuLiData.article = mArticleList itemList.add(fuLiData) diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java index eac61261fa..7b358be8a0 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java @@ -117,8 +117,8 @@ public class SettingsFragment extends NormalFragment { sp = PreferenceManager.getDefaultSharedPreferences(getContext()); // 未打开下载按钮,显示修复下载按钮 - if (!Config.isShow()) { - mCachedView.findViewById(R.id.setting_cv_fix_download).setVisibility(View.VISIBLE); + if (Config.isExistHideFunction()) { + mCachedView.findViewById(R.id.setting_cv_fix).setVisibility(View.VISIBLE); } mSettingCacheTv.setText(getCacheSize()); @@ -215,9 +215,8 @@ public class SettingsFragment extends NormalFragment { return str + "M"; } - // R.id.setting_rl_kc_path,R.id.setting_rl_download_path, R.id.setting_rl_pic_path, @OnClick({ - R.id.setting_cv_fix_download, R.id.setting_rl_autoinstall, + R.id.setting_cv_fix, R.id.setting_rl_autoinstall, R.id.setting_rl_cache, R.id.setting_cv_font_size, R.id.setting_rl_concerngame, R.id.setting_rl_about, R.id.setting_logout_rl, @@ -229,10 +228,8 @@ public class SettingsFragment extends NormalFragment { String dirPath = null; switch (v.getId()) { - case R.id.setting_cv_fix_download: - SharedPreferences.Editor editor = sp.edit(); - editor.putBoolean("isFixDownload", true); - editor.apply(); + case R.id.setting_cv_fix: + Config.fixHideFunction(); toast("修复成功"); EventBus.getDefault().post(new EBReuse("Refresh")); getActivity().finish(); diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml index 2b4cfedd87..6ed03c07b3 100644 --- a/app/src/main/res/layout/fragment_setting.xml +++ b/app/src/main/res/layout/fragment_setting.xml @@ -9,7 +9,7 @@ android:orientation = "vertical" > diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aa081590fc..03a084d032 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -124,7 +124,7 @@ 接收文件需要开启热点 \n 如果出现获取权限的提示,请点击允许 为了避免消耗流量,请关闭你手机的移动网络 从手机相册中选择 - 一键修复下载 + 一键修复 下载完成自动安装游戏 安装完成自动关注游戏 安装完成自动删除安装包