From 42f4cd698d8d331d73c8f1ffd15fab6e0d177167 Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 5 Sep 2021 11:55:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/data/dao/BookChapterDao.kt | 8 ++++---- app/src/main/java/io/legado/app/model/AudioPlay.kt | 11 ++++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) 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) } } }