From dced1d364d2241e76ce20c057b66660781c88383 Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Mon, 8 Jun 2026 13:15:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20AppConfig.themeMode=20=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E7=9B=B4=E6=8E=A5=E8=AF=BB=E5=8F=96=20ThemeConfig.the?= =?UTF-8?q?meMode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除 AppConfig.themeMode 缓存变量,isNightTheme 和 JsExtensions 统一从 ThemeConfig.themeMode(prefDelegate / MutableState)读取, 消除 SP listener 异步同步的时序问题。 --- app/src/main/java/io/legado/app/help/JsExtensions.kt | 3 ++- app/src/main/java/io/legado/app/help/config/AppConfig.kt | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/JsExtensions.kt b/app/src/main/java/io/legado/app/help/JsExtensions.kt index 04d476a73..f4a78c6b1 100644 --- a/app/src/main/java/io/legado/app/help/JsExtensions.kt +++ b/app/src/main/java/io/legado/app/help/JsExtensions.kt @@ -16,6 +16,7 @@ import io.legado.app.data.entities.BaseSource import io.legado.app.exception.NoStackTraceException import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ThemeConfigStore +import io.legado.app.ui.config.themeConfig.ThemeConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.http.BackstageWebView import io.legado.app.help.http.CookieManager.cookieJarHeader @@ -1196,7 +1197,7 @@ interface JsExtensions : JsEncodeUtils { */ @JavascriptInterface fun getThemeMode(): String { - return AppConfig.themeMode ?: "0" + return ThemeConfig.themeMode } /** diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index 4c1ee513f..d778dba00 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -51,7 +51,6 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { var mangaClickActionBC = appCtx.getPrefInt(PreferKey.mangaClickActionBC, 1) var mangaClickActionBR = appCtx.getPrefInt(PreferKey.mangaClickActionBR, 1) - val themeMode get() = ThemeConfig.themeMode var AppTheme = appCtx.getPrefString(PreferKey.appTheme, "0") var swipeAnimation = appCtx.getPrefBoolean(PreferKey.swipeAnimation, true) @@ -282,15 +281,15 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { } var isNightTheme: Boolean - get() = when (themeMode) { + get() = when (ThemeConfig.themeMode) { "1" -> false "2" -> true else -> sysConfiguration.isNightMode } set(value) { val newMode = if (value) "2" else "1" - if (themeMode != newMode) { - appCtx.putPrefString(PreferKey.themeMode, newMode) + if (ThemeConfig.themeMode != newMode) { + ThemeConfig.themeMode = newMode } }