Horis 2 лет назад
Родитель
Сommit
b7475bf10f

+ 3 - 0
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")

+ 3 - 2
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