From ac9e0af6d40f2b67ad5634308ce2b4b1691648a5 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sun, 21 Jul 2024 21:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/help/book/BookExtensions.kt | 3 +++ .../java/io/legado/app/ui/book/info/BookInfoViewModel.kt | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/book/BookExtensions.kt b/app/src/main/java/io/legado/app/help/book/BookExtensions.kt index 329da54a7..6e5c900d8 100644 --- a/app/src/main/java/io/legado/app/help/book/BookExtensions.kt +++ b/app/src/main/java/io/legado/app/help/book/BookExtensions.kt @@ -74,6 +74,9 @@ val Book.isUpError: Boolean val Book.isArchive: Boolean get() = isType(BookType.archive) +val Book.isNotShelf: Boolean + get() = isType(BookType.notShelf) + val Book.archiveName: String get() { if (!isArchive) throw NoStackTraceException("Book is not deCompressed from archive") diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt index be03a14bd..80c2e0795 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt @@ -22,6 +22,7 @@ import io.legado.app.help.book.BookHelp import io.legado.app.help.book.getExportFileName import io.legado.app.help.book.getRemoteUrl import io.legado.app.help.book.isLocal +import io.legado.app.help.book.isNotShelf import io.legado.app.help.book.isSameNameAuthor import io.legado.app.help.book.isWebFile import io.legado.app.help.book.removeType @@ -57,7 +58,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { val author = intent.getStringExtra("author") ?: "" val bookUrl = intent.getStringExtra("bookUrl") ?: "" appDb.bookDao.getBook(name, author)?.let { - inBookshelf = true + inBookshelf = !it.isNotShelf upBook(it) return@execute } @@ -178,7 +179,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { WebBook.getBookInfo(scope, bookSource, book, canReName = canReName) .onSuccess(IO) { val dbBook = appDb.bookDao.getBook(book.name, book.author) - if (dbBook != null && dbBook.origin == book.origin) { + if (dbBook != null && !dbBook.isNotShelf && dbBook.origin == book.origin) { /** * book 来自搜索时,搜索的书名不存在于书架,但是加载详情后,书名更新,存在同名书籍 * 此时 book 的数据会与数据库中的不同,需要更新 #3652