This commit is contained in:
Horis
2024-07-21 21:20:44 +08:00
parent c37779a1bb
commit ac9e0af6d4
2 changed files with 6 additions and 2 deletions
@@ -74,6 +74,9 @@ val Book.isUpError: Boolean
val Book.isArchive: Boolean val Book.isArchive: Boolean
get() = isType(BookType.archive) get() = isType(BookType.archive)
val Book.isNotShelf: Boolean
get() = isType(BookType.notShelf)
val Book.archiveName: String val Book.archiveName: String
get() { get() {
if (!isArchive) throw NoStackTraceException("Book is not deCompressed from archive") if (!isArchive) throw NoStackTraceException("Book is not deCompressed from archive")
@@ -22,6 +22,7 @@ import io.legado.app.help.book.BookHelp
import io.legado.app.help.book.getExportFileName import io.legado.app.help.book.getExportFileName
import io.legado.app.help.book.getRemoteUrl import io.legado.app.help.book.getRemoteUrl
import io.legado.app.help.book.isLocal 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.isSameNameAuthor
import io.legado.app.help.book.isWebFile import io.legado.app.help.book.isWebFile
import io.legado.app.help.book.removeType import io.legado.app.help.book.removeType
@@ -57,7 +58,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
val author = intent.getStringExtra("author") ?: "" val author = intent.getStringExtra("author") ?: ""
val bookUrl = intent.getStringExtra("bookUrl") ?: "" val bookUrl = intent.getStringExtra("bookUrl") ?: ""
appDb.bookDao.getBook(name, author)?.let { appDb.bookDao.getBook(name, author)?.let {
inBookshelf = true inBookshelf = !it.isNotShelf
upBook(it) upBook(it)
return@execute return@execute
} }
@@ -178,7 +179,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
WebBook.getBookInfo(scope, bookSource, book, canReName = canReName) WebBook.getBookInfo(scope, bookSource, book, canReName = canReName)
.onSuccess(IO) { .onSuccess(IO) {
val dbBook = appDb.bookDao.getBook(book.name, book.author) 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 来自搜索时,搜索的书名不存在于书架,但是加载详情后,书名更新,存在同名书籍
* 此时 book 的数据会与数据库中的不同,需要更新 #3652 * 此时 book 的数据会与数据库中的不同,需要更新 #3652