From 2788d5e9d857bf49ad78f07dcad5d7b20000a26a Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Wed, 10 Jun 2026 21:34:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20defaultToRead=20=E5=A7=8B=E7=BB=88?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=90=8C=E4=B8=80=E6=9C=AC=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lastReadBook 查询有过滤 type & BookType.text > 0, 漫画等非文本类型书籍不会被返回,导致始终跳转到很久以前读过的文本类书。 新增 mostRecentlyReadBook 查询(不限类型),initData / initReadBookConfig 改用它获取最近阅读的书籍。 --- app/src/main/java/io/legado/app/data/dao/BookDao.kt | 3 +++ .../java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt | 2 +- .../main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/data/dao/BookDao.kt b/app/src/main/java/io/legado/app/data/dao/BookDao.kt index 7af033094..377b25033 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookDao.kt @@ -648,6 +648,9 @@ interface BookDao { @get:Query("SELECT * FROM books where type & ${BookType.text} > 0 ORDER BY durChapterTime DESC limit 1") val lastReadBook: Book? + @get:Query("SELECT * FROM books ORDER BY durChapterTime DESC limit 1") + val mostRecentlyReadBook: Book? + @get:Query("SELECT bookUrl FROM books") val allBookUrls: List diff --git a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt index 05bd4fa0a..40da3dc2e 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt @@ -65,7 +65,7 @@ class ReadMangaViewModel( ReadManga.chapterChanged = intent.getBooleanExtra("chapterChanged", false) val bookUrl = intent.getStringExtra("bookUrl") val book = when { - bookUrl.isNullOrEmpty() -> appDb.bookDao.lastReadBook + bookUrl.isNullOrEmpty() -> appDb.bookDao.mostRecentlyReadBook else -> appDb.bookDao.getBook(bookUrl) } ?: ReadManga.book when { 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..010203e2b 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 @@ -1668,7 +1668,7 @@ class ReadBookViewModel( fun initReadBookConfig(intent: Intent) { val bookUrl = intent.getStringExtra("bookUrl") val book = when { - bookUrl.isNullOrEmpty() -> appDb.bookDao.lastReadBook + bookUrl.isNullOrEmpty() -> appDb.bookDao.mostRecentlyReadBook else -> appDb.bookDao.getBook(bookUrl) } ?: return ReadBook.upReadBookConfig(book) @@ -1680,7 +1680,7 @@ class ReadBookViewModel( ReadBook.chapterChanged = intent.getBooleanExtra("chapterChanged", false) val bookUrl = intent.getStringExtra("bookUrl") val book = when { - bookUrl.isNullOrEmpty() -> appDb.bookDao.lastReadBook + bookUrl.isNullOrEmpty() -> appDb.bookDao.mostRecentlyReadBook else -> appDb.bookDao.getBook(bookUrl) } ?: ReadBook.book when {