diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.kt b/app/src/main/java/com/hippo/ehviewer/Settings.kt index 0d66783f8..1bee388b3 100755 --- a/app/src/main/java/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/java/com/hippo/ehviewer/Settings.kt @@ -54,7 +54,7 @@ object Settings : DataStorePreferences(null) { var builtInHosts by boolPref(KEY_BUILT_IN_HOSTS, false) var removeImageFiles by boolPref("include_pic", true) var needSignIn by boolPref("need_sign_in", true) - var blackDarkTheme by boolPref("black_dark_theme", false).observed { updateWhenThemeChanges() } + var blackDarkTheme by boolPref("black_dark_theme", false).observed { updateWhenAmoledModeChanges() } var preloadThumbAggressively by boolPref("preload_thumb_aggressively", false) var dF by boolPref(KEY_DOMAIN_FRONTING, false) var downloadOriginImage by boolPref("download_origin_image", false) diff --git a/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt b/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt index 5bf324a87..73e02fff0 100644 --- a/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt +++ b/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt @@ -1,6 +1,7 @@ package com.hippo.ehviewer import androidx.appcompat.app.AppCompatDelegate +import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY import androidx.core.os.LocaleListCompat import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhTagDatabase @@ -43,6 +44,14 @@ fun updateWhenThemeChanges() { } } +fun updateWhenAmoledModeChanges() { + collectScope.launch { + delay(100) // Avoid recompose being cancelled + AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_AUTO_BATTERY) + AppCompatDelegate.setDefaultNightMode(Settings.theme) + } +} + fun updateWhenRequestNewsChanges() { updateDailyCheckWork(appCtx) }