From f60b6ac2e9cf8bfcf0dfa7ab57f1d04357c05e35 Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 13 Feb 2020 16:27:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/config/ThemeConfigFragment.kt | 100 ++++++++---------- 1 file changed, 46 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt index ebd65a1c5..b4d12f700 100644 --- a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt @@ -4,7 +4,6 @@ import android.content.SharedPreferences import android.os.Bundle import android.os.Handler import android.view.View -import androidx.appcompat.app.AlertDialog import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import io.legado.app.App @@ -18,16 +17,16 @@ import io.legado.app.lib.dialogs.yesButton import io.legado.app.lib.theme.ATH import io.legado.app.lib.theme.ColorUtils import io.legado.app.utils.* +import org.jetbrains.anko.defaultSharedPreferences class ThemeConfigFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener { - val items = arrayOf("极简", "曜夜", "经典", "黑白", "A屏黑") + val items = arrayListOf("极简", "曜夜", "经典", "黑白", "A屏黑") override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.pref_config_theme) - - findPreference("defaultTheme")?.summary = items[getPrefInt("default_theme", 0)] + onSharedPreferenceChanged(requireContext().defaultSharedPreferences, "defaultTheme") } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -94,64 +93,57 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), SharedPreferences.OnShar upTheme(true) } } + "defaultTheme" -> findPreference(key)?.summary = items[getPrefInt(key)] } } override fun onPreferenceTreeClick(preference: Preference?): Boolean { when (preference?.key) { - "defaultTheme" -> { - activity?.let { - AlertDialog.Builder(it) - .setTitle("切换默认主题") - .setItems(items){ - _,which -> - preference.summary = items[which] - putPrefInt("default_theme", which) - when (which) { - 0 -> { - putPrefInt("colorPrimary", getCompatColor(R.color.md_grey_100)) - putPrefInt("colorAccent", getCompatColor(R.color.lightBlue_color)) - putPrefInt("colorBackground", getCompatColor(R.color.md_grey_100)) - AppConfig.isNightTheme = false - } - 1 -> { - putPrefInt("colorPrimaryNight", getCompatColor(R.color.shine_color)) - putPrefInt("colorAccentNight", getCompatColor(R.color.lightBlue_color)) - putPrefInt("colorBackgroundNight", getCompatColor(R.color.shine_color)) - AppConfig.isNightTheme = true - } - 2 -> { - putPrefInt("colorPrimary", getCompatColor(R.color.md_light_blue_500)) - putPrefInt("colorAccent", getCompatColor(R.color.md_pink_800)) - putPrefInt("colorBackground", getCompatColor(R.color.md_grey_100)) - AppConfig.isNightTheme = false - } - 3 -> { - putPrefInt("colorPrimary", getCompatColor(R.color.white)) - putPrefInt("colorAccent", getCompatColor(R.color.black)) - putPrefInt("colorBackground", getCompatColor(R.color.white)) - AppConfig.isNightTheme = false - } - 4 -> { - putPrefInt("colorPrimaryNight", getCompatColor(R.color.black)) - putPrefInt( - "colorAccentNight", - getCompatColor(R.color.md_grey_600) - ) - putPrefInt( - "colorBackgroundNight", - getCompatColor(R.color.black) - ) - AppConfig.isNightTheme = true - } - } - App.INSTANCE.applyDayNight() - recreateActivities() + "defaultTheme" -> alert(title = "切换默认主题") { + items(items) { _, which -> + when (which) { + 0 -> { + putPrefInt("colorPrimary", getCompatColor(R.color.md_grey_100)) + putPrefInt("colorAccent", getCompatColor(R.color.lightBlue_color)) + putPrefInt("colorBackground", getCompatColor(R.color.md_grey_100)) + AppConfig.isNightTheme = false + } + 1 -> { + putPrefInt("colorPrimaryNight", getCompatColor(R.color.shine_color)) + putPrefInt("colorAccentNight", getCompatColor(R.color.lightBlue_color)) + putPrefInt("colorBackgroundNight", getCompatColor(R.color.shine_color)) + AppConfig.isNightTheme = true + } + 2 -> { + putPrefInt("colorPrimary", getCompatColor(R.color.md_light_blue_500)) + putPrefInt("colorAccent", getCompatColor(R.color.md_pink_800)) + putPrefInt("colorBackground", getCompatColor(R.color.md_grey_100)) + AppConfig.isNightTheme = false } - .show().applyTint() + 3 -> { + putPrefInt("colorPrimary", getCompatColor(R.color.white)) + putPrefInt("colorAccent", getCompatColor(R.color.black)) + putPrefInt("colorBackground", getCompatColor(R.color.white)) + AppConfig.isNightTheme = false + } + 4 -> { + putPrefInt("colorPrimaryNight", getCompatColor(R.color.black)) + putPrefInt( + "colorAccentNight", + getCompatColor(R.color.md_grey_600) + ) + putPrefInt( + "colorBackgroundNight", + getCompatColor(R.color.black) + ) + AppConfig.isNightTheme = true + } + } + App.INSTANCE.applyDayNight() + recreateActivities() } - } + }.show().applyTint() } return super.onPreferenceTreeClick(preference) }