fix: View与Compose亮暗色主题冷启动不一致
This commit is contained in:
@@ -34,6 +34,7 @@ import io.legado.app.data.entities.rule.BookInfoRule
|
||||
import io.legado.app.data.entities.rule.ContentRule
|
||||
import io.legado.app.data.entities.rule.ExploreRule
|
||||
import io.legado.app.data.entities.rule.SearchRule
|
||||
import io.legado.app.data.repository.SettingsRepository
|
||||
import io.legado.app.di.appDatabaseModule
|
||||
import io.legado.app.di.appModule
|
||||
import io.legado.app.help.AppFreezeMonitor
|
||||
@@ -44,11 +45,10 @@ import io.legado.app.help.DispatchersMonitor
|
||||
import io.legado.app.help.LifecycleHelp
|
||||
import io.legado.app.help.RuleBigDataHelp
|
||||
import io.legado.app.help.book.BookHelp
|
||||
import io.legado.app.data.repository.SettingsRepository
|
||||
import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.config.ReadBookConfig
|
||||
import io.legado.app.help.config.ThemeConfigStore
|
||||
import io.legado.app.help.config.ThemeConfigStore.applyDayNightInit
|
||||
import io.legado.app.help.config.ReadBookConfig
|
||||
import io.legado.app.help.coroutine.Coroutine
|
||||
import io.legado.app.help.http.Cronet
|
||||
import io.legado.app.help.http.ObsoleteUrlFactory
|
||||
@@ -91,6 +91,7 @@ class App : Application(), ImageLoaderFactory {
|
||||
androidContext(this@App)
|
||||
modules(appDatabaseModule, appModule)
|
||||
}
|
||||
applyDayNightInit(this)
|
||||
if (getPrefString("app_theme", "0") == "12") {
|
||||
if (AppConfig.customMode == "accent")
|
||||
setTheme(R.style.ThemeOverlay_WhiteBackground)
|
||||
@@ -130,7 +131,6 @@ class App : Application(), ImageLoaderFactory {
|
||||
ThreadUtils.setThreadAssertsDisabledForTesting(true)
|
||||
}
|
||||
oldConfig = Configuration(resources.configuration)
|
||||
applyDayNightInit(this)
|
||||
registerActivityLifecycleCallbacks(LifecycleHelp)
|
||||
defaultSharedPreferences.registerOnSharedPreferenceChangeListener(AppConfig)
|
||||
Coroutine.async {
|
||||
|
||||
@@ -128,12 +128,7 @@ abstract class BaseActivity<VB : ViewBinding>(
|
||||
true,
|
||||
fullScreen
|
||||
)
|
||||
val isDarkTheme = when (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) {
|
||||
Configuration.UI_MODE_NIGHT_YES -> true
|
||||
Configuration.UI_MODE_NIGHT_NO,
|
||||
Configuration.UI_MODE_NIGHT_UNDEFINED -> false
|
||||
else -> false
|
||||
}
|
||||
val isDarkTheme = AppConfig.isNightTheme
|
||||
WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars = !isDarkTheme
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ package io.legado.app.ui.about
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
@@ -46,6 +45,7 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import io.legado.app.R
|
||||
import io.legado.app.constant.AppConst.appInfo
|
||||
import io.legado.app.ui.theme.LegadoTheme
|
||||
import io.legado.app.ui.util.BlurredBar
|
||||
import io.legado.app.ui.util.LocalAppState
|
||||
import io.legado.app.ui.util.LocalIsWideScreen
|
||||
@@ -212,7 +212,7 @@ private fun AboutContent(
|
||||
.calculateRightPadding(LayoutDirection.Ltr) + 16.dp,
|
||||
)
|
||||
|
||||
val isInDark = isSystemInDarkTheme()
|
||||
val isInDark = LegadoTheme.isDark
|
||||
val dynamicBackground = isRuntimeShaderSupported()
|
||||
|
||||
val cardBlend =
|
||||
|
||||
@@ -59,7 +59,7 @@ object ThemeConfig {
|
||||
}
|
||||
|
||||
fun initNightMode() {
|
||||
when (appCtx.getPrefString(PreferKey.themeMode, "0")) {
|
||||
when (themeMode) {
|
||||
"1" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||||
"2" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||||
else -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
|
||||
|
||||
@@ -11,7 +11,6 @@ import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.LocalActivity
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
@@ -55,6 +54,7 @@ import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.http.CookieManager
|
||||
import io.legado.app.ui.config.otherConfig.OtherConfig
|
||||
import io.legado.app.ui.login.SourceLoginActivity
|
||||
import io.legado.app.ui.theme.LegadoTheme
|
||||
import io.legado.app.ui.widget.components.AppScaffold
|
||||
import io.legado.app.ui.widget.components.AppTextField
|
||||
import io.legado.app.ui.widget.components.button.ConfirmDismissButtonsRow
|
||||
@@ -189,7 +189,7 @@ fun RssReadRouteScreen(
|
||||
}
|
||||
}
|
||||
|
||||
val isNight = isSystemInDarkTheme()
|
||||
val isNight = LegadoTheme.isDark
|
||||
|
||||
LaunchedEffect(isNight, webView) {
|
||||
val currentWebView = webView ?: return@LaunchedEffect
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package io.legado.app.ui.widget.components
|
||||
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
@@ -46,7 +45,7 @@ fun AppScaffold(
|
||||
disableHazeSource: Boolean = false,
|
||||
content: @Composable (PaddingValues) -> Unit
|
||||
) {
|
||||
val isDark = isSystemInDarkTheme()
|
||||
val isDark = LegadoTheme.isDark
|
||||
val hasImageBg = ThemeConfig.hasImageBg(isDark)
|
||||
val hazeState = remember { HazeState() }
|
||||
val composeEngine = LegadoTheme.composeEngine
|
||||
|
||||
@@ -2,7 +2,6 @@ package io.legado.app.ui.widget.components.effect
|
||||
|
||||
import androidx.compose.animation.core.Animatable
|
||||
import androidx.compose.animation.core.spring
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
@@ -11,6 +10,7 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import io.legado.app.ui.theme.LegadoTheme
|
||||
import io.legado.app.ui.util.shouldShowSplitPane
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.isActive
|
||||
@@ -39,7 +39,7 @@ fun BgEffectBackground(
|
||||
) {
|
||||
val surface = MiuixTheme.colorScheme.surface
|
||||
val deviceType = if (shouldShowSplitPane()) DeviceType.PAD else DeviceType.PHONE
|
||||
val isDarkTheme = isSystemInDarkTheme()
|
||||
val isDarkTheme = LegadoTheme.isDark
|
||||
val painter = remember(isOs3Effect) { BgEffectPainter(isOs3Effect) }
|
||||
|
||||
val preset = remember(deviceType, isDarkTheme, isOs3Effect) {
|
||||
|
||||
@@ -13,7 +13,6 @@ import androidx.compose.animation.SharedTransitionScope
|
||||
import androidx.compose.animation.core.animateFloat
|
||||
import androidx.compose.foundation.Canvas
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.aspectRatio
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
@@ -68,7 +67,7 @@ fun BookCoverImage(
|
||||
sharedCoverKey: String? = null,
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val isNight = isSystemInDarkTheme()
|
||||
val isNight = LegadoTheme.isDark
|
||||
|
||||
val useDefault = !ignoreUseDefaultCover && CoverConfig.useDefaultCover
|
||||
val finalPath = if (useDefault) null else path
|
||||
@@ -159,7 +158,7 @@ fun CoilBookCover(
|
||||
animatedVisibilityScope: AnimatedVisibilityScope? = null,
|
||||
sharedCoverKey: String? = null,
|
||||
) {
|
||||
val isNight = isSystemInDarkTheme()
|
||||
val isNight = LegadoTheme.isDark
|
||||
|
||||
val useDefault = !ignoreUseDefaultCover && CoverConfig.useDefaultCover
|
||||
val finalPath = if (useDefault) null else path
|
||||
|
||||
Reference in New Issue
Block a user