diff --git a/app/src/main/java/io/legado/app/data/dao/BookChapterDao.kt b/app/src/main/java/io/legado/app/data/dao/BookChapterDao.kt index eaeaabd5c..6e5d7e399 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookChapterDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookChapterDao.kt @@ -1,9 +1,6 @@ package io.legado.app.data.dao -import androidx.room.Dao -import androidx.room.Insert -import androidx.room.OnConflictStrategy -import androidx.room.Query +import androidx.room.* import io.legado.app.data.entities.BookChapter import kotlinx.coroutines.flow.Flow @@ -34,6 +31,9 @@ interface BookChapterDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(vararg bookChapter: BookChapter) + @Update + fun upDate(vararg bookChapter: BookChapter) + @Query("delete from chapters where bookUrl = :bookUrl") fun delByBook(bookUrl: String) diff --git a/app/src/main/java/io/legado/app/model/AudioPlay.kt b/app/src/main/java/io/legado/app/model/AudioPlay.kt index 328ef34c9..f668067c2 100644 --- a/app/src/main/java/io/legado/app/model/AudioPlay.kt +++ b/app/src/main/java/io/legado/app/model/AudioPlay.kt @@ -29,6 +29,9 @@ object AudioPlay { return bookSource?.getHeaderMap() } + /** + * 播放当前章节 + */ fun play(context: Context) { book?.let { if (durChapter == null) { @@ -42,6 +45,9 @@ object AudioPlay { } } + /** + * 更新当前章节 + */ fun upDurChapter(book: Book) { durChapter = appDb.bookChapterDao.getChapter(book.bookUrl, book.durChapterIndex) postEvent(EventBus.AUDIO_SUB_TITLE, durChapter?.title ?: "") @@ -148,11 +154,14 @@ object AudioPlay { } } + /** + * 保存章节长度 + */ fun saveDurChapter(audioSize: Long) { Coroutine.async { durChapter?.let { it.end = audioSize - appDb.bookChapterDao.insert(it) + appDb.bookChapterDao.upDate(it) } } }