Skip to content

Commit 174a80c

Browse files
committed
优化
1 parent c5123ee commit 174a80c

File tree

6 files changed

+12
-10
lines changed

6 files changed

+12
-10
lines changed

app/src/main/java/io/legado/app/data/dao/BookDao.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.room.Delete
55
import androidx.room.Insert
66
import androidx.room.OnConflictStrategy
77
import androidx.room.Query
8+
import androidx.room.Transaction
89
import androidx.room.Update
910
import io.legado.app.constant.BookType
1011
import io.legado.app.data.entities.Book
@@ -150,6 +151,12 @@ interface BookDao {
150151
@Delete
151152
fun delete(vararg book: Book)
152153

154+
@Transaction
155+
fun replace(oldBook: Book, newBook: Book) {
156+
delete(oldBook)
157+
insert(newBook)
158+
}
159+
153160
@Query("update books set durChapterPos = :pos where bookUrl = :bookUrl")
154161
fun upProgress(bookUrl: String, pos: Int)
155162

app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ class AudioPlayViewModel(application: Application) : BaseViewModel(application)
7171
if (oldBook.bookUrl == book.bookUrl) {
7272
appDb.bookDao.update(book)
7373
} else {
74-
appDb.bookDao.delete(oldBook)
75-
appDb.bookDao.insert(book)
74+
appDb.bookDao.replace(oldBook, book)
7675
}
7776
appDb.bookChapterDao.delByBook(book.bookUrl)
7877
appDb.bookChapterDao.insert(*cList.toTypedArray())

app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
235235
WebBook.getChapterList(scope, bookSource, book, runPreUpdateJs)
236236
.onSuccess(IO) {
237237
if (inBookshelf) {
238-
appDb.bookDao.delete(oldBook)
239-
book.save()
238+
appDb.bookDao.replace(oldBook, book)
240239
/**
241240
* runPreUpdateJs 有可能会修改 book 的 bookUrl
242241
*/

app/src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ class ReadMangaViewModel(application: Application) : BaseViewModel(application)
118118
if (oldBook.bookUrl == book.bookUrl) {
119119
appDb.bookDao.update(book)
120120
} else {
121-
appDb.bookDao.delete(oldBook)
122-
appDb.bookDao.insert(book)
121+
appDb.bookDao.replace(oldBook, book)
123122
BookHelp.updateCacheFolder(oldBook, book)
124123
}
125124
appDb.bookChapterDao.delByBook(oldBook.bookUrl)

app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
214214
if (oldBook.bookUrl == book.bookUrl) {
215215
appDb.bookDao.update(book)
216216
} else {
217-
appDb.bookDao.delete(oldBook)
218-
appDb.bookDao.insert(book)
217+
appDb.bookDao.replace(oldBook, book)
219218
BookHelp.updateCacheFolder(oldBook, book)
220219
}
221220
appDb.bookChapterDao.delByBook(oldBook.bookUrl)

app/src/main/java/io/legado/app/ui/main/MainViewModel.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,7 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
167167
if (book.bookUrl == bookUrl) {
168168
appDb.bookDao.update(book)
169169
} else {
170-
appDb.bookDao.delete(oldBook)
171-
appDb.bookDao.insert(book)
170+
appDb.bookDao.replace(oldBook, book)
172171
BookHelp.updateCacheFolder(oldBook, book)
173172
}
174173
appDb.bookChapterDao.delByBook(bookUrl)

0 commit comments

Comments
 (0)