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

fix: 目录更新后新增章节点击无法跳转 (Closes #2043) (#2077)

ReadBook.openChapter 用缓存的 chapterSize 作为守卫,更新目录后 chapterSize
未同步新值时,新增章节 index 超出旧值会被静默吞掉,表现为点击无反应。
改为实时读取章节数,不依赖可能过期的缓存。

Co-authored-by: Kudomaga <63206378+HapeLee@users.noreply.github.com>
kungunier 2 месяцев назад
Родитель
Сommit
0923de7691
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      app/src/main/java/io/legado/app/model/ReadBook.kt

+ 5 - 1
app/src/main/java/io/legado/app/model/ReadBook.kt

@@ -983,7 +983,11 @@ object ReadBook : CoroutineScope by MainScope(), KoinComponent {
         upContent: Boolean = true,
         success: (() -> Unit)? = null
     ) {
-        if (index < chapterSize) {
+        // 实时读取章节数而不是依赖缓存 chapterSize:更新目录后 chapterSize 若未同步,
+        // 新增章节的 index 会超出旧值而被下方守卫静默吞掉,表现为「点击新章节无法跳转」。
+        val chapterCount = book?.bookUrl?.let { appDb.bookChapterDao.getChapterCount(it) }
+            ?: chapterSize
+        if (index < chapterCount) {
             clearTextChapter()
             if (upContent) renderCallBack?.upContent()
             durChapterIndex = index