diff --git a/app/src/main/java/io/legado/app/api/controller/BookshelfController.kt b/app/src/main/java/io/legado/app/api/controller/BookshelfController.kt index 2130340c3..fcebe0721 100644 --- a/app/src/main/java/io/legado/app/api/controller/BookshelfController.kt +++ b/app/src/main/java/io/legado/app/api/controller/BookshelfController.kt @@ -78,7 +78,7 @@ object BookshelfController { val book = GSON.fromJsonObject(postData) val returnData = ReturnData() if (book != null) { - App.db.bookDao().insert(book) + App.db.bookDao().update(book) if (ReadBook.book?.bookUrl == book.bookUrl) { ReadBook.book = book ReadBook.durChapterIndex = book.durChapterIndex 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 141c690fb..f04c7c34d 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 @@ -161,7 +161,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { ) book.durChapterTitle = chapters[book.durChapterIndex].title if (inBookshelf) { - App.db.bookDao().insert(book) + App.db.bookDao().update(book) App.db.bookChapterDao().insert(*chapters.toTypedArray()) } bookData.postValue(book) @@ -179,7 +179,11 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { book.durChapterPos = it.durChapterPos book.durChapterTitle = it.durChapterTitle } - App.db.bookDao().insert(book) + if (App.db.bookDao().getBook(book.bookUrl) != null) { + App.db.bookDao().update(book) + } else { + App.db.bookDao().insert(book) + } if (ReadBook.book?.name == book.name && ReadBook.book?.author == book.author) { ReadBook.book = book }