优化
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Transaction
|
||||
import androidx.room.Update
|
||||
import io.legado.app.constant.BookType
|
||||
import io.legado.app.data.entities.Book
|
||||
@@ -150,6 +151,12 @@ interface BookDao {
|
||||
@Delete
|
||||
fun delete(vararg book: Book)
|
||||
|
||||
@Transaction
|
||||
fun replace(oldBook: Book, newBook: Book) {
|
||||
delete(oldBook)
|
||||
insert(newBook)
|
||||
}
|
||||
|
||||
@Query("update books set durChapterPos = :pos where bookUrl = :bookUrl")
|
||||
fun upProgress(bookUrl: String, pos: Int)
|
||||
|
||||
|
||||
@@ -71,8 +71,7 @@ class AudioPlayViewModel(application: Application) : BaseViewModel(application)
|
||||
if (oldBook.bookUrl == book.bookUrl) {
|
||||
appDb.bookDao.update(book)
|
||||
} else {
|
||||
appDb.bookDao.delete(oldBook)
|
||||
appDb.bookDao.insert(book)
|
||||
appDb.bookDao.replace(oldBook, book)
|
||||
}
|
||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||
appDb.bookChapterDao.insert(*cList.toTypedArray())
|
||||
|
||||
@@ -235,8 +235,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
||||
WebBook.getChapterList(scope, bookSource, book, runPreUpdateJs)
|
||||
.onSuccess(IO) {
|
||||
if (inBookshelf) {
|
||||
appDb.bookDao.delete(oldBook)
|
||||
book.save()
|
||||
appDb.bookDao.replace(oldBook, book)
|
||||
/**
|
||||
* runPreUpdateJs 有可能会修改 book 的 bookUrl
|
||||
*/
|
||||
|
||||
@@ -118,8 +118,7 @@ class ReadMangaViewModel(application: Application) : BaseViewModel(application)
|
||||
if (oldBook.bookUrl == book.bookUrl) {
|
||||
appDb.bookDao.update(book)
|
||||
} else {
|
||||
appDb.bookDao.delete(oldBook)
|
||||
appDb.bookDao.insert(book)
|
||||
appDb.bookDao.replace(oldBook, book)
|
||||
BookHelp.updateCacheFolder(oldBook, book)
|
||||
}
|
||||
appDb.bookChapterDao.delByBook(oldBook.bookUrl)
|
||||
|
||||
@@ -214,8 +214,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
|
||||
if (oldBook.bookUrl == book.bookUrl) {
|
||||
appDb.bookDao.update(book)
|
||||
} else {
|
||||
appDb.bookDao.delete(oldBook)
|
||||
appDb.bookDao.insert(book)
|
||||
appDb.bookDao.replace(oldBook, book)
|
||||
BookHelp.updateCacheFolder(oldBook, book)
|
||||
}
|
||||
appDb.bookChapterDao.delByBook(oldBook.bookUrl)
|
||||
|
||||
@@ -167,8 +167,7 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
|
||||
if (book.bookUrl == bookUrl) {
|
||||
appDb.bookDao.update(book)
|
||||
} else {
|
||||
appDb.bookDao.delete(oldBook)
|
||||
appDb.bookDao.insert(book)
|
||||
appDb.bookDao.replace(oldBook, book)
|
||||
BookHelp.updateCacheFolder(oldBook, book)
|
||||
}
|
||||
appDb.bookChapterDao.delByBook(bookUrl)
|
||||
|
||||
Reference in New Issue
Block a user