From 2f9ffde7007af64fefb472b6c17e8d7cdda6095c Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Fri, 29 Sep 2023 22:23:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=89=B9=E6=AE=8A=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=E6=97=A0=E6=B3=95=E4=BB=8E=E5=A4=9C=E9=97=B4=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=88=87=E6=8D=A2=E5=9B=9E=E6=AD=A3=E5=B8=B8=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../huanchengfly/tieba/post/utils/ThemeUtil.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt index 956ec15c..87c9255b 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt @@ -106,13 +106,21 @@ object ThemeUtil { ThemeUtils.refreshUI(activity) } + private fun getOldTheme(): String { + val oldTheme = + dataStore.getString(KEY_OLD_THEME, THEME_DEFAULT).takeUnless { isNightMode(it) } + + return oldTheme ?: THEME_DEFAULT + } + fun switchTheme(newTheme: String, recordOldTheme: Boolean = true) { if (recordOldTheme) { val oldTheme = getTheme() - dataStore.putString(KEY_OLD_THEME, oldTheme) + if (!isNightMode(oldTheme)) { + dataStore.putString(KEY_OLD_THEME, oldTheme) + } } dataStore.putString(KEY_THEME, newTheme) -// dataStore.putBoolean(KEY_USE_DYNAMIC_THEME, false) themeState.value = newTheme } @@ -127,7 +135,7 @@ object ThemeUtil { fun switchNightMode() { if (isNightMode()) { - switchTheme(dataStore.getString(KEY_OLD_THEME, THEME_DEFAULT), recordOldTheme = false) + switchTheme(getOldTheme(), recordOldTheme = false) } else { switchTheme(dataStore.getString(KEY_DARK_THEME, THEME_AMOLED_DARK)) } @@ -142,7 +150,7 @@ object ThemeUtil { @JvmOverloads fun switchFromNightMode(context: Activity, recreate: Boolean = true) { - switchTheme(dataStore.getString(KEY_OLD_THEME, THEME_DEFAULT), recordOldTheme = false) + switchTheme(getOldTheme(), recordOldTheme = false) if (recreate) { refreshUI(context) }