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