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 329da54a732b..6e5c900d804b 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 be03a14bd1b4..80c2e07956b9 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