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