From 6641a7480c6056f48fd5184c32c9c0f206de272c Mon Sep 17 00:00:00 2001 From: arkon Date: Mon, 25 May 2020 15:13:30 -0400 Subject: [PATCH] Use getEnum for theme preferences too (cherry picked from commit f430b6f853cb61734d4c31d84be970aad94d1639) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt # app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt # app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt --- .../data/preference/PreferenceValues.kt | 25 ++++++++----- .../data/preference/PreferencesHelper.kt | 6 ++-- .../ui/base/activity/BaseActivity.kt | 10 +++--- .../ui/setting/SettingsGeneralController.kt | 36 +++++++++---------- 4 files changed, 43 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt index 08b7388ff..312544684 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt @@ -5,16 +5,25 @@ package eu.kanade.tachiyomi.data.preference */ object PreferenceValues { - const val THEME_MODE_LIGHT = "light" - const val THEME_MODE_DARK = "dark" - const val THEME_MODE_SYSTEM = "system" + // Keys are lowercase to match legacy string values + enum class ThemeMode { + light, + dark, + system, + } - const val THEME_LIGHT_DEFAULT = "default" - const val THEME_LIGHT_BLUE = "blue" + // Keys are lowercase to match legacy string values + enum class LightThemeVariant { + default, + blue, + } - const val THEME_DARK_DEFAULT = "default" - const val THEME_DARK_BLUE = "blue" - const val THEME_DARK_AMOLED = "amoled" + // Keys are lowercase to match legacy string values + enum class DarkThemeVariant { + default, + blue, + amoled, + } enum class DisplayMode { COMPACT_GRID, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index 453b2d743..8929521ce 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -69,11 +69,11 @@ class PreferencesHelper(val context: Context) { fun clear() = prefs.edit().clear().apply() - fun themeMode() = flowPrefs.getString(Keys.themeMode, Values.THEME_MODE_SYSTEM) + fun themeMode() = flowPrefs.getEnum(Keys.themeMode, Values.ThemeMode.system) - fun themeLight() = flowPrefs.getString(Keys.themeLight, Values.THEME_LIGHT_DEFAULT) + fun themeLight() = flowPrefs.getEnum(Keys.themeLight, Values.LightThemeVariant.default) - fun themeDark() = flowPrefs.getString(Keys.themeDark, Values.THEME_DARK_DEFAULT) + fun themeDark() = flowPrefs.getEnum(Keys.themeDark, Values.DarkThemeVariant.default) fun rotation() = flowPrefs.getInt(Keys.rotation, 1) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt index 11c86bf18..0ecde8b1d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt @@ -25,7 +25,7 @@ abstract class BaseActivity : AppCompatActivity() { private val lightTheme: Int by lazy { when (preferences.themeLight().get()) { - Values.THEME_LIGHT_BLUE -> R.style.Theme_Tachiyomi_LightBlue + Values.LightThemeVariant.blue -> R.style.Theme_Tachiyomi_LightBlue else -> { when { // Light status + navigation bar @@ -47,8 +47,8 @@ abstract class BaseActivity : AppCompatActivity() { private val darkTheme: Int by lazy { when (preferences.themeDark().get()) { - Values.THEME_DARK_BLUE -> R.style.Theme_Tachiyomi_DarkBlue - Values.THEME_DARK_AMOLED -> R.style.Theme_Tachiyomi_Amoled + Values.DarkThemeVariant.blue -> R.style.Theme_Tachiyomi_DarkBlue + Values.DarkThemeVariant.amoled -> R.style.Theme_Tachiyomi_Amoled else -> R.style.Theme_Tachiyomi_Dark } } @@ -61,14 +61,14 @@ abstract class BaseActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { setTheme( when (preferences.themeMode().get()) { - Values.THEME_MODE_SYSTEM -> { + Values.ThemeMode.system -> { if (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES) { darkTheme } else { lightTheme } } - Values.THEME_MODE_DARK -> darkTheme + Values.ThemeMode.dark -> darkTheme else -> lightTheme } ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt index 3194472ac..32e7ffa91 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt @@ -118,21 +118,21 @@ class SettingsGeneralController : SettingsController() { R.string.theme_dark ) entryValues = arrayOf( - Values.THEME_MODE_SYSTEM, - Values.THEME_MODE_LIGHT, - Values.THEME_MODE_DARK + Values.ThemeMode.system.name, + Values.ThemeMode.light.name, + Values.ThemeMode.dark.name ) - defaultValue = Values.THEME_MODE_SYSTEM + defaultValue = Values.ThemeMode.system.name } else { entriesRes = arrayOf( R.string.theme_light, R.string.theme_dark ) entryValues = arrayOf( - Values.THEME_MODE_LIGHT, - Values.THEME_MODE_DARK + Values.ThemeMode.light.name, + Values.ThemeMode.dark.name ) - defaultValue = Values.THEME_MODE_LIGHT + defaultValue = Values.ThemeMode.light.name } summary = "%s" @@ -150,17 +150,17 @@ class SettingsGeneralController : SettingsController() { R.string.theme_light_blue ) entryValues = arrayOf( - Values.THEME_LIGHT_DEFAULT, - Values.THEME_LIGHT_BLUE + Values.LightThemeVariant.default.name, + Values.LightThemeVariant.blue.name ) - defaultValue = Values.THEME_LIGHT_DEFAULT + defaultValue = Values.LightThemeVariant.default.name summary = "%s" - preferences.themeMode().asImmediateFlow { isVisible = it != Values.THEME_MODE_DARK } + preferences.themeMode().asImmediateFlow { isVisible = it != Values.ThemeMode.dark } .launchIn(scope) onChange { - if (preferences.themeMode().get() != Values.THEME_MODE_DARK) { + if (preferences.themeMode().get() != Values.ThemeMode.dark) { activity?.recreate() } true @@ -175,18 +175,18 @@ class SettingsGeneralController : SettingsController() { R.string.theme_dark_amoled ) entryValues = arrayOf( - Values.THEME_DARK_DEFAULT, - Values.THEME_DARK_BLUE, - Values.THEME_DARK_AMOLED + Values.DarkThemeVariant.default.name, + Values.DarkThemeVariant.blue.name, + Values.DarkThemeVariant.amoled.name ) - defaultValue = Values.THEME_DARK_DEFAULT + defaultValue = Values.DarkThemeVariant.default.name summary = "%s" - preferences.themeMode().asImmediateFlow { isVisible = it != Values.THEME_MODE_LIGHT } + preferences.themeMode().asImmediateFlow { isVisible = it != Values.ThemeMode.light } .launchIn(scope) onChange { - if (preferences.themeMode().get() != Values.THEME_MODE_LIGHT) { + if (preferences.themeMode().get() != Values.ThemeMode.light) { activity?.recreate() } true