diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index 470278f74..2f14f8b09 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -2531,10 +2531,26 @@ class ReadBookViewModel( } is ConfigUpdate.FloatingBottomBar -> { ReadBookConfig.readMenuFloatingBottomBar = update.value + val needsBlurFallback = !update.value && + ReadBookConfig.readMenuBottomBarBlurMode == ReadMenuBlurMode.LiquidGlass + if (needsBlurFallback) { + ReadBookConfig.readMenuBottomBarBlurMode = ReadMenuBlurMode.Haze + } viewModelScope.launch { readSettingsRepository.setReadMenuFloatingBottomBar(update.value) + if (needsBlurFallback) { + readSettingsRepository.setReadMenuBottomBarBlurMode(ReadMenuBlurMode.Haze) + } + } + _uiState.update { + it.copy( + menuConfig = it.menuConfig.copy( + readMenuFloatingBottomBar = update.value, + readMenuBottomBarBlurMode = if (needsBlurFallback) ReadMenuBlurMode.Haze + else it.menuConfig.readMenuBottomBarBlurMode, + ) + ) } - _uiState.update { it.copy(menuConfig = it.menuConfig.copy(readMenuFloatingBottomBar = update.value)) } } is ConfigUpdate.MenuTopBarBlurMode -> { val mode = update.value.coerceIn(0, 2).let { diff --git a/app/src/main/java/io/legado/app/ui/book/read/sheet/SystemMenuPage.kt b/app/src/main/java/io/legado/app/ui/book/read/sheet/SystemMenuPage.kt index 7aeb12ec0..cbfe9c1bf 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/sheet/SystemMenuPage.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/sheet/SystemMenuPage.kt @@ -525,15 +525,6 @@ private fun BottomBarTab( title = stringResource(R.string.read_menu_floating_bottom_bar), checked = floatingBottomBar, onCheckedChange = { - if (!it && preferences.readMenuBottomBarBlurMode == ReadMenuBlurMode.LiquidGlass) { - onIntent( - ReadBookIntent.UpdateConfig( - ConfigUpdate.MenuBottomBarBlurMode( - ReadMenuBlurMode.Haze - ) - ) - ) - } onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.FloatingBottomBar(it))) }, )