fix: defaultToRead 始终跳转同一本书

lastReadBook 查询有过滤 type & BookType.text > 0,
漫画等非文本类型书籍不会被返回,导致始终跳转到很久以前读过的文本类书。

新增 mostRecentlyReadBook 查询(不限类型),initData / initReadBookConfig
改用它获取最近阅读的书籍。
This commit is contained in:
HapeLee
2026-06-10 21:34:27 +08:00
parent 3a8c4af968
commit 2788d5e9d8
3 changed files with 6 additions and 3 deletions
@@ -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<String>
@@ -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 {
@@ -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 {