Sfoglia il codice sorgente

fix: 书签跳转位置有误

funnytime 3 mesi fa
parent
commit
020ca71280

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/read/ReadBookmarkDelegate.kt

@@ -37,7 +37,7 @@ class ReadBookmarkDelegate(
                 bookAuthor = book.author,
                 bookAuthor = book.author,
                 chapterIndex = chapter.chapter.index,
                 chapterIndex = chapter.chapter.index,
                 chapterName = chapter.title,
                 chapterName = chapter.title,
-                chapterPos = ReadBook.durPageIndex,
+                chapterPos = ReadBook.durChapterPos,
                 bookText = page.text,
                 bookText = page.text,
                 content = "",
                 content = "",
             )
             )

+ 10 - 0
app/src/test/java/io/legado/app/ui/book/read/ReadBookDomainSplitBoundaryTest.kt

@@ -45,6 +45,16 @@ class ReadBookDomainSplitBoundaryTest {
         )
         )
     }
     }
 
 
+    @Test
+    fun `菜单书签保存章节内字符位置而不是页码`() {
+        val source = mainSourceFile("io/legado/app/ui/book/read/ReadBookmarkDelegate.kt").readText()
+        assertTrue(
+            "书签 chapterPos 必须保存章节内字符位置,否则跳转时页码会被误当成字符偏移",
+            "chapterPos = ReadBook.durChapterPos" in source &&
+                "chapterPos = ReadBook.durPageIndex" !in source,
+        )
+    }
+
     @Test
     @Test
     fun `ReadBookViewModel 不再持有各域的实现`() {
     fun `ReadBookViewModel 不再持有各域的实现`() {
         val source = mainSourceFile("io/legado/app/ui/book/read/ReadBookViewModel.kt").readText()
         val source = mainSourceFile("io/legado/app/ui/book/read/ReadBookViewModel.kt").readText()