refactor: AppConfig.themeMode 改为直接读取 ThemeConfig.themeMode

删除 AppConfig.themeMode 缓存变量,isNightTheme 和 JsExtensions
统一从 ThemeConfig.themeMode(prefDelegate / MutableState)读取,
消除 SP listener 异步同步的时序问题。
This commit is contained in:
HapeLee committed 2026-06-08 13:51:12 +08:00
1 parent 2ba5f98db9
commit dced1d364d
2 files changed
+5 -5

No files matched your search

@@ -16,6 +16,7 @@ import io.legado.app.data.entities.BaseSource
import io.legado.app.exception.NoStackTraceException import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.ThemeConfigStore 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.config.ReadBookConfig
import io.legado.app.help.http.BackstageWebView import io.legado.app.help.http.BackstageWebView
import io.legado.app.help.http.CookieManager.cookieJarHeader import io.legado.app.help.http.CookieManager.cookieJarHeader
@@ -1196,7 +1197,7 @@ interface JsExtensions : JsEncodeUtils {
*/ */
@JavascriptInterface @JavascriptInterface
fun getThemeMode(): String { fun getThemeMode(): String {
return AppConfig.themeMode ?: "0" return ThemeConfig.themeMode
} }
/** /**
@@ -51,7 +51,6 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
var mangaClickActionBC = appCtx.getPrefInt(PreferKey.mangaClickActionBC, 1) var mangaClickActionBC = appCtx.getPrefInt(PreferKey.mangaClickActionBC, 1)
var mangaClickActionBR = appCtx.getPrefInt(PreferKey.mangaClickActionBR, 1) var mangaClickActionBR = appCtx.getPrefInt(PreferKey.mangaClickActionBR, 1)
val themeMode get() = ThemeConfig.themeMode
var AppTheme = appCtx.getPrefString(PreferKey.appTheme, "0") var AppTheme = appCtx.getPrefString(PreferKey.appTheme, "0")
var swipeAnimation = appCtx.getPrefBoolean(PreferKey.swipeAnimation, true) var swipeAnimation = appCtx.getPrefBoolean(PreferKey.swipeAnimation, true)
@@ -282,15 +281,15 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
} }
var isNightTheme: Boolean var isNightTheme: Boolean
get() = when (themeMode) { get() = when (ThemeConfig.themeMode) {
"1" -> false "1" -> false
"2" -> true "2" -> true
else -> sysConfiguration.isNightMode else -> sysConfiguration.isNightMode
} }
set(value) { set(value) {
val newMode = if (value) "2" else "1" val newMode = if (value) "2" else "1"
if (themeMode != newMode) { if (ThemeConfig.themeMode != newMode) {
appCtx.putPrefString(PreferKey.themeMode, newMode) ThemeConfig.themeMode = newMode
} }
} }