Просмотр исходного кода

fix(阅读设置): readMenuFloatingIconLiquidGlass 接入 update{} 持久化与通道归类

同为护栏缺席期新增设置:toGatewayPrefMap 缺映射导致通用 update{}
静默丢写(E0 覆盖测试抓出);ConfigUpdate 成员归入 readPreferences
反应式白名单;映射测试边界 45→46 键。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5151561 3 месяцев назад
Родитель
Сommit
a694a75b04

+ 1 - 0
app/src/main/java/io/legado/app/data/repository/ReadSettingsRepository.kt

@@ -569,6 +569,7 @@ internal fun ReadSettings.toGatewayPrefMap(): Map<String, Any?> = mapOf(
     PreferKey.paddingDisplayCutouts to paddingDisplayCutouts,
     PreferKey.titleBarMode to titleBarMode,
     PreferKey.readMenuBlurAlpha to readMenuBlurAlpha,
+    PreferKey.readMenuFloatingIconLiquidGlass to readMenuFloatingIconLiquidGlass,
     PreferKey.readBodyToLh to readBodyToLh,
     PreferKey.defaultSourceChangeAll to defaultSourceChangeAll,
     PreferKey.textFullJustify to textFullJustify,

+ 5 - 3
app/src/test/java/io/legado/app/data/repository/ReadSettingsMappingTest.kt

@@ -13,16 +13,16 @@ import org.junit.Test
 class ReadSettingsMappingTest {
 
     @Test
-    fun `gateway 持久化边界固定为显式声明的 45 键`() {
+    fun `gateway 持久化边界固定为显式声明的 46 键`() {
         val actualKeys = ReadSettings().toGatewayPrefMap().keys
         val expectedKeys = ReadSettings().expectedGatewayPrefMap().keys
 
-        assertEquals(45, actualKeys.size)
+        assertEquals(46, actualKeys.size)
         assertEquals(expectedKeys, actualKeys)
     }
 
     @Test
-    fun `阅读设置 gateway 45 键写读映射逐字段对应`() {
+    fun `阅读设置 gateway 46 键写读映射逐字段对应`() {
         val repository = ReadSettingsRepository(
             settingsRepository = SettingsRepository(),
             preferencesFlow = MutableStateFlow(mutablePreferencesOf()),
@@ -92,6 +92,7 @@ private fun readSettingsMappingSamples(): List<ReadSettings> {
         keepLight = "keep-light",
         titleBarMode = "title-mode",
         readMenuBlurAlpha = 37,
+        readMenuFloatingIconLiquidGlass = true,
         showBrightnessView = "brightness-view",
         brightnessVwPos = "brightness-pos",
         readBrightness = 73,
@@ -147,6 +148,7 @@ private fun ReadSettings.expectedGatewayPrefMap(): Map<String, Any?> = mapOf(
     PreferKey.paddingDisplayCutouts to paddingDisplayCutouts,
     PreferKey.titleBarMode to titleBarMode,
     PreferKey.readMenuBlurAlpha to readMenuBlurAlpha,
+    PreferKey.readMenuFloatingIconLiquidGlass to readMenuFloatingIconLiquidGlass,
     PreferKey.readBodyToLh to readBodyToLh,
     PreferKey.defaultSourceChangeAll to defaultSourceChangeAll,
     PreferKey.textFullJustify to textFullJustify,

+ 1 - 0
app/src/test/java/io/legado/app/ui/book/read/ConfigUpdateActionsInvariantTest.kt

@@ -91,6 +91,7 @@ class ConfigUpdateActionsInvariantTest {
             "MenuIconStyle",
             "MenuIconItemsPerRow",
             "MenuIconRowCount",
+            "MenuFloatingIconLiquidGlass",
             "MenuBottomCornerRadius",
             "MenuBlurRadius",
             "MenuBlurAlpha",