refactor: AppConfig.themeMode 改为直接读取 ThemeConfig.themeMode
删除 AppConfig.themeMode 缓存变量,isNightTheme 和 JsExtensions 统一从 ThemeConfig.themeMode(prefDelegate / MutableState)读取, 消除 SP listener 异步同步的时序问题。
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user