From 2b900151250037691aeb516d7000950b9a7cbaea Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Fri, 29 Mar 2024 17:29:48 +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 --- .../io/legado/app/data/dao/BookChapterDao.kt | 8 +++-- .../legado/app/data/entities/BookChapter.kt | 29 +++++++++++++------ .../java/io/legado/app/model/AudioPlay.kt | 2 +- .../legado/app/model/webBook/BookContent.kt | 3 +- .../app/ui/book/read/ContentEditDialog.kt | 2 +- 5 files changed, 30 insertions(+), 14 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 4b60bb8b3..43ad9bd78 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,6 +1,10 @@ package io.legado.app.data.dao -import androidx.room.* +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update import io.legado.app.data.entities.BookChapter @Dao @@ -28,7 +32,7 @@ interface BookChapterDao { fun insert(vararg bookChapter: BookChapter) @Update - fun upDate(vararg bookChapter: BookChapter) + 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/data/entities/BookChapter.kt b/app/src/main/java/io/legado/app/data/entities/BookChapter.kt index 52deea1dc..3c9627078 100644 --- a/app/src/main/java/io/legado/app/data/entities/BookChapter.kt +++ b/app/src/main/java/io/legado/app/data/entities/BookChapter.kt @@ -1,5 +1,6 @@ package io.legado.app.data.entities +import android.annotation.SuppressLint import android.os.Parcelable import androidx.room.Entity import androidx.room.ForeignKey @@ -64,11 +65,9 @@ data class BookChapter( GSON.fromJsonObject>(variable).getOrNull() ?: hashMapOf() } - @delegate:Ignore + @Ignore @IgnoredOnParcel - private val titleMD5: String by lazy { - MD5Utils.md5Encode16(title) - } + var titleMD5: String? = null override fun putVariable(key: String, value: String?): Boolean { if (super.putVariable(key, value)) { @@ -158,12 +157,24 @@ data class BookChapter( } } - @Suppress("unused") - fun getFileName(suffix: String = "nb"): String = - String.format("%05d-%s.%s", index, titleMD5, suffix) - + private fun ensureTitleMD5Init() { + if (titleMD5 == null) { + titleMD5 = MD5Utils.md5Encode16(title) + } + } + @SuppressLint("DefaultLocale") @Suppress("unused") - fun getFontName(): String = String.format("%05d-%s.ttf", index, titleMD5) + fun getFileName(suffix: String = "nb"): String { + ensureTitleMD5Init() + return String.format("%05d-%s.%s", index, titleMD5, suffix) + } + + @SuppressLint("DefaultLocale") + @Suppress("unused") + fun getFontName(): String { + ensureTitleMD5Init() + return String.format("%05d-%s.ttf", index, titleMD5) + } } 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 6b7277394..c06fcf3a5 100644 --- a/app/src/main/java/io/legado/app/model/AudioPlay.kt +++ b/app/src/main/java/io/legado/app/model/AudioPlay.kt @@ -183,7 +183,7 @@ object AudioPlay { Coroutine.async { durChapter?.let { it.end = audioSize - appDb.bookChapterDao.upDate(it) + appDb.bookChapterDao.update(it) } } } diff --git a/app/src/main/java/io/legado/app/model/webBook/BookContent.kt b/app/src/main/java/io/legado/app/model/webBook/BookContent.kt index 1a9359f97..fcf27c884 100644 --- a/app/src/main/java/io/legado/app/model/webBook/BookContent.kt +++ b/app/src/main/java/io/legado/app/model/webBook/BookContent.kt @@ -69,7 +69,8 @@ object BookContent { }.getOrNull() if (!title.isNullOrBlank()) { bookChapter.title = title - appDb.bookChapterDao.upDate(bookChapter) + bookChapter.titleMD5 = null + appDb.bookChapterDao.update(bookChapter) } } var contentData = analyzeContent( diff --git a/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt index 6b7b42b9c..84fe07340 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt @@ -106,7 +106,7 @@ class ContentEditDialog : BaseDialogFragment(R.layout.dialog_content_edit) { chapter.title = alertBinding.editView.text.toString() lifecycleScope.launch { withContext(IO) { - appDb.bookChapterDao.upDate(chapter) + appDb.bookChapterDao.update(chapter) } binding.toolBar.title = chapter.getDisplayTitle() ReadBook.loadContent(ReadBook.durChapterIndex, resetPageOffset = false)