diff --git a/app/src/main/java/io/legado/app/data/dao/BookDao.kt b/app/src/main/java/io/legado/app/data/dao/BookDao.kt index 6cf150833..9633a8b6d 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookDao.kt @@ -104,8 +104,8 @@ interface BookDao { @Query("select 1 from books where originName = :fileName") fun hasFile(fileName: String): Boolean? - @Upsert - fun upsert(vararg book: Book) + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insert(vararg book: Book) @Update fun update(vararg book: Book) diff --git a/app/src/main/java/io/legado/app/data/dao/DictRuleDao.kt b/app/src/main/java/io/legado/app/data/dao/DictRuleDao.kt index bcb824ef4..2a3fda677 100644 --- a/app/src/main/java/io/legado/app/data/dao/DictRuleDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/DictRuleDao.kt @@ -1,9 +1,6 @@ package io.legado.app.data.dao -import androidx.room.Dao -import androidx.room.Delete -import androidx.room.Query -import androidx.room.Upsert +import androidx.room.* import io.legado.app.data.entities.DictRule import kotlinx.coroutines.flow.Flow @@ -23,8 +20,8 @@ interface DictRuleDao { @Query("select * from dictRules where name = :name") fun getByName(name: String): DictRule? - @Upsert - fun upsert(vararg dictRule: DictRule) + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insert(vararg dictRule: DictRule) @Delete fun delete(vararg dictRule: DictRule) diff --git a/app/src/main/java/io/legado/app/data/entities/Book.kt b/app/src/main/java/io/legado/app/data/entities/Book.kt index 71bb3f8a2..9cb8364d1 100644 --- a/app/src/main/java/io/legado/app/data/entities/Book.kt +++ b/app/src/main/java/io/legado/app/data/entities/Book.kt @@ -298,7 +298,7 @@ data class Book( if (appDb.bookDao.has(bookUrl) == true) { appDb.bookDao.update(this) } else { - appDb.bookDao.upsert(this) + appDb.bookDao.insert(this) } } diff --git a/app/src/main/java/io/legado/app/help/DefaultData.kt b/app/src/main/java/io/legado/app/help/DefaultData.kt index c63fe969e..e5e99431b 100644 --- a/app/src/main/java/io/legado/app/help/DefaultData.kt +++ b/app/src/main/java/io/legado/app/help/DefaultData.kt @@ -121,7 +121,7 @@ object DefaultData { } fun importDefaultDictRules() { - appDb.dictRuleDao.upsert(*dictRules.toTypedArray()) + appDb.dictRuleDao.insert(*dictRules.toTypedArray()) } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/help/storage/ImportOldData.kt b/app/src/main/java/io/legado/app/help/storage/ImportOldData.kt index b17138a7f..015118ccb 100644 --- a/app/src/main/java/io/legado/app/help/storage/ImportOldData.kt +++ b/app/src/main/java/io/legado/app/help/storage/ImportOldData.kt @@ -87,7 +87,7 @@ object ImportOldData { private fun importOldBookshelf(json: String): Int { val books = fromOldBooks(json) - appDb.bookDao.upsert(*books.toTypedArray()) + appDb.bookDao.insert(*books.toTypedArray()) return books.size } diff --git a/app/src/main/java/io/legado/app/help/storage/Restore.kt b/app/src/main/java/io/legado/app/help/storage/Restore.kt index 470e4e7ac..d524e8fb1 100644 --- a/app/src/main/java/io/legado/app/help/storage/Restore.kt +++ b/app/src/main/java/io/legado/app/help/storage/Restore.kt @@ -75,7 +75,7 @@ object Restore { .forEach { book -> book.coverUrl = LocalBook.getCoverPath(book) } - appDb.bookDao.upsert(*it.toTypedArray()) + appDb.bookDao.insert(*it.toTypedArray()) } fileToListT(path, "bookmark.json")?.let { appDb.bookmarkDao.insert(*it.toTypedArray()) diff --git a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt index 76e4954ee..17720bebd 100644 --- a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt +++ b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt @@ -184,7 +184,7 @@ object LocalBook { if (book.isEpub) EpubFile.upBookInfo(book) if (book.isUmd) UmdFile.upBookInfo(book) if (book.isPdf) PdfFile.upBookInfo(book) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) } else { //已有书籍说明是更新,删除原有目录 appDb.bookChapterDao.delByBook(bookUrl) diff --git a/app/src/main/java/io/legado/app/ui/association/ImportDictRuleViewModel.kt b/app/src/main/java/io/legado/app/ui/association/ImportDictRuleViewModel.kt index 99cd58bcb..5f5161030 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportDictRuleViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportDictRuleViewModel.kt @@ -51,7 +51,7 @@ class ImportDictRuleViewModel(app: Application) : BaseViewModel(app) { selectSource.add(allSources[index]) } } - appDb.dictRuleDao.upsert(*selectSource.toTypedArray()) + appDb.dictRuleDao.insert(*selectSource.toTypedArray()) }.onFinally { finally.invoke() } diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt index 3f4c50b3e..95a1d2186 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt @@ -195,7 +195,7 @@ class AudioPlayActivity : launch { withContext(IO) { AudioPlay.book?.migrateTo(book, toc) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) } startActivity { putExtra("bookUrl", book.bookUrl) diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt index 14c76d7ed..0c0847090 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt @@ -79,7 +79,7 @@ class AudioPlayViewModel(application: Application) : BaseViewModel(application) fun changeTo(source: BookSource, book: Book, toc: List) { execute { AudioPlay.book?.migrateTo(book, toc) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) AudioPlay.book = book AudioPlay.bookSource = source appDb.bookChapterDao.insert(*toc.toTypedArray()) 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 b97dab76f..f394f30a2 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 @@ -196,7 +196,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { if (oldBook.bookUrl == book.bookUrl) { appDb.bookDao.update(book) } else { - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) BookHelp.updateCacheFolder(oldBook, book) } appDb.bookChapterDao.delByBook(oldBook.bookUrl) @@ -237,7 +237,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { bookData.value?.migrateTo(book, toc) if (inBookshelf) { book.removeType(BookType.updateError) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) appDb.bookChapterDao.insert(*toc.toTypedArray()) } bookData.postValue(book) diff --git a/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageViewModel.kt b/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageViewModel.kt index 32bc20bca..4ee9308e3 100644 --- a/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageViewModel.kt @@ -59,7 +59,7 @@ class BookshelfManageViewModel(application: Application) : BaseViewModel(applica }.getOrNull()?.let { toc -> book.migrateTo(newBook, toc) book.removeType(BookType.updateError) - appDb.bookDao.upsert(newBook) + appDb.bookDao.insert(newBook) appDb.bookChapterDao.insert(*toc.toTypedArray()) } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index addaad7da..5a4bba3dd 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -833,7 +833,7 @@ class ReadBookActivity : BaseReadBookActivity(), ReadAloud.stop(this) launch { ReadBook.book?.migrateTo(book, toc) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) } startActivity { putExtra("bookUrl", book.bookUrl) diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index c2d52e634..aeb31f6fc 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -165,7 +165,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { if (oldBook.bookUrl == book.bookUrl) { appDb.bookDao.update(book) } else { - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) BookHelp.updateCacheFolder(oldBook, book) } appDb.bookChapterDao.delByBook(oldBook.bookUrl) @@ -216,7 +216,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { ReadBook.upMsg(context.getString(R.string.loading)) ReadBook.book?.migrateTo(book, toc) book.removeType(BookType.updateError) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) appDb.bookChapterDao.insert(*toc.toTypedArray()) ReadBook.resetData(book) ReadBook.upMsg(null) diff --git a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleEditDialog.kt b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleEditDialog.kt index 2225ab6ac..b2c34102c 100644 --- a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleEditDialog.kt +++ b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleEditDialog.kt @@ -91,7 +91,7 @@ class DictRuleEditDialog() : BaseDialogFragment(R.layout.dialog_dict_rule_edit, dictRule?.let { appDb.dictRuleDao.delete(it) } - appDb.dictRuleDao.upsert(newDictRule) + appDb.dictRuleDao.insert(newDictRule) dictRule = newDictRule }.onFinally { onFinally.invoke() diff --git a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleViewModel.kt b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleViewModel.kt index bd6965edd..9a43513c9 100644 --- a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleViewModel.kt @@ -11,7 +11,7 @@ class DictRuleViewModel(application: Application) : BaseViewModel(application) { fun upsert(vararg dictRule: DictRule) { execute { - appDb.dictRuleDao.upsert(*dictRule) + appDb.dictRuleDao.insert(*dictRule) } } @@ -27,7 +27,7 @@ class DictRuleViewModel(application: Application) : BaseViewModel(application) { for ((index, rule) in rules.withIndex()) { rule.sortNumber = index + 1 } - appDb.dictRuleDao.upsert(*rules.toTypedArray()) + appDb.dictRuleDao.insert(*rules.toTypedArray()) } } @@ -36,7 +36,7 @@ class DictRuleViewModel(application: Application) : BaseViewModel(application) { dictRule.forEach { it.enabled = true } - appDb.dictRuleDao.upsert(*dictRule) + appDb.dictRuleDao.insert(*dictRule) } } @@ -45,7 +45,7 @@ class DictRuleViewModel(application: Application) : BaseViewModel(application) { dictRule.forEach { it.enabled = false } - appDb.dictRuleDao.upsert(*dictRule) + appDb.dictRuleDao.insert(*dictRule) } } diff --git a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt index b3a1dc34a..49e0a5482 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt @@ -133,7 +133,7 @@ class MainViewModel(application: Application) : BaseViewModel(application) { appDb.bookDao.update(book) } else { upTocAdd(book.bookUrl) - appDb.bookDao.upsert(book) + appDb.bookDao.insert(book) BookHelp.updateCacheFolder(oldBook, book) } appDb.bookChapterDao.delByBook(bookUrl)