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

删除 AppConfig.themeMode 缓存变量,isNightTheme 和 JsExtensions
统一从 ThemeConfig.themeMode(prefDelegate / MutableState)读取,
消除 SP listener 异步同步的时序问题。
This commit is contained in:
HapeLee
2026-06-08 13:51:12 +08:00
parent 2ba5f98db9
commit dced1d364d
2 changed files with 5 additions and 5 deletions
@@ -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
}
/**
@@ -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
}
}