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

fix: 修复 Verify 工作流失败并回归全绿

- ConfigUpdateActionsInvariantTest:MaxLengthWithNoToc 属解析期设置,加入无渲染副作用白名单
- ReadSettingsMappingTest:字段数 108 → 109(#2016 新增 maxLengthWithNoToc)
- ReadBookDomainSplitBoundaryTest:验收线 2664 → 2668(#2024 两条朗读意图分支,纯接线)
- MangaSettingsMappingTest:expectedPrefMap 补齐菜单颜色 3 键(合并前已存在)
- MangaReaderRouteScreen:LocalContext 强转 Activity 改 LocalActivity(合并前已存在)

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

+ 2 - 2
app/src/main/java/io/legado/app/ui/book/manga/MangaReaderRouteScreen.kt

@@ -2,12 +2,12 @@ package io.legado.app.ui.book.manga
 
 import android.view.KeyEvent
 import android.view.WindowManager
+import androidx.activity.compose.LocalActivity
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.DisposableEffect
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
-import androidx.compose.ui.platform.LocalContext
 import dev.chrisbanes.haze.HazeState
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleEventObserver
@@ -41,7 +41,7 @@ fun MangaReaderRouteScreen(
         sourceType: Int?,
     ) -> Unit,
 ) {
-    val activity = LocalContext.current as MainActivity
+    val activity = LocalActivity.current as MainActivity
     val lifecycleOwner = LocalLifecycleOwner.current
     val state by viewModel.uiState.collectAsStateWithLifecycle()
     val networkChangedListener = remember(activity) { NetworkChangedListener(activity) }

+ 3 - 0
app/src/test/java/io/legado/app/data/repository/MangaSettingsMappingTest.kt

@@ -248,6 +248,9 @@ private fun MangaSettings.expectedPrefMap(): Map<String, Any?> = mapOf(
     PreferKey.mangaMenuBottomBarFloating to menuBottomBarFloating,
     PreferKey.mangaMenuBottomBarBlur to menuBottomBarBlur,
     PreferKey.mangaMenuTopBarCompact to menuTopBarCompact,
+    PreferKey.mangaMenuColorSource to menuColorSource,
+    PreferKey.mangaMenuSeedColor to menuSeedColor,
+    PreferKey.mangaMenuPaletteStyle to menuPaletteStyle,
     PreferKey.mangaClickActionTL to clickActionTL,
     PreferKey.mangaClickActionTC to clickActionTC,
     PreferKey.mangaClickActionTR to clickActionTR,

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

@@ -14,11 +14,11 @@ import kotlin.reflect.full.primaryConstructor
 class ReadSettingsMappingTest {
 
     @Test
-    fun `gateway 持久化映射覆盖 ReadSettings 全部 108 个字段`() {
+    fun `gateway 持久化映射覆盖 ReadSettings 全部 109 个字段`() {
         val actualKeys = ReadSettings().toGatewayPrefMap().keys
         val expectedKeys = ReadSettings().expectedGatewayPrefMap().keys
 
-        assertEquals(108, actualKeys.size)
+        assertEquals(109, actualKeys.size)
         assertEquals(expectedKeys, actualKeys)
     }
 

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

@@ -149,6 +149,8 @@ class ConfigUpdateActionsInvariantTest {
             "AutoReadSpeed",
             // 只决定点击目录时开新 Sheet 还是旧 Activity,取用时读设置,无渲染副作用
             "UseNewTocSheet",
+            // 只影响下次目录解析时的无规则章节切分长度,取用时读设置,无渲染副作用
+            "MaxLengthWithNoToc",
         )
     }
 }

+ 8 - 3
app/src/test/java/io/legado/app/ui/book/read/ReadBookDomainSplitBoundaryTest.kt

@@ -132,16 +132,21 @@ class ReadBookDomainSplitBoundaryTest {
      *   只有 VM 能管,摘不成 delegate。意图入口与 Host 实现与书签域同款,只能在 VM。
      * - `caafbfdde`(优化一些AI功能):AI 域三个 reasoning level 意图分支转发给
      *   `aiDelegate`——意图入口只能在 VM,每档两行(分支 + 转发)。
+     *
+     * 2664 → 2668:朗读域新增两个意图分支(安卓媒体控制 / 定时到点后读完本章),
+     * 合并自 PR #2024。朗读域早已是 `ReadAloudDelegate`——留在 VM 的只有两条 `when`
+     * 分支转发,各两行(分支 + 转发),与上方 `SetReadAloudSystemMediaCompat` 等兄弟
+     * 分支同款,逐行都摘不掉:意图入口只能在 VM。
      */
     @Test
-    fun `ReadBookViewModel 不超过 R2 验收的 2664 行`() {
+    fun `ReadBookViewModel 不超过 R2 验收的 2668 行`() {
         val lineCount = mainSourceFile("io/legado/app/ui/book/read/ReadBookViewModel.kt")
             .readLines().size
         assertTrue(
-            "ReadBookViewModel 涨到了 $lineCount 行,超过 R2 验收线 2664。\n" +
+            "ReadBookViewModel 涨到了 $lineCount 行,超过 R2 验收线 2668。\n" +
                 "新功能请摘成 io/legado/app/ui/book/read/ 下的 XxxDelegate," +
                 "并在本测试的 DOMAINS 里加一条边界。",
-            lineCount <= 2664,
+            lineCount <= 2668,
         )
     }