From add93e17f0dc1f08a0c1a27d54f6b8d7cdd29ad9 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Wed, 18 Jun 2025 09:59:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20#5186?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/help/book/BookHelp.kt | 8 ++++++-- .../main/java/io/legado/app/model/localBook/LocalBook.kt | 8 ++++++++ .../app/ui/book/read/page/provider/TextChapterLayout.kt | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/book/BookHelp.kt b/app/src/main/java/io/legado/app/help/book/BookHelp.kt index c9dd19cbe..ea4a5b035 100644 --- a/app/src/main/java/io/legado/app/help/book/BookHelp.kt +++ b/app/src/main/java/io/legado/app/help/book/BookHelp.kt @@ -3,6 +3,7 @@ package io.legado.app.help.book import android.graphics.BitmapFactory import android.os.ParcelFileDescriptor import androidx.documentfile.provider.DocumentFile +import com.script.rhino.runScriptWithContext import io.legado.app.constant.AppLog import io.legado.app.constant.AppPattern import io.legado.app.constant.EventBus @@ -28,7 +29,6 @@ import io.legado.app.utils.getFile import io.legado.app.utils.isContentScheme import io.legado.app.utils.onEachParallel import io.legado.app.utils.postEvent -import com.script.rhino.runScriptWithContext import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.ensureActive @@ -404,7 +404,11 @@ object BookHelp { bookChapter.getFileName() ) if (file.exists()) { - return file.readText() + val string = file.readText() + if (string.isEmpty()) { + return null + } + return string } if (book.isLocal) { val string = LocalBook.getContent(book, bookChapter) diff --git a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt index d7a74aaca..233a0aae4 100644 --- a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt +++ b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt @@ -144,6 +144,9 @@ object LocalBook { val list = ArrayList(LinkedHashSet(chapters)) list.forEachIndexed { index, bookChapter -> bookChapter.index = index + if (bookChapter.title.isEmpty()) { + bookChapter.title = "无标题章节" + } } val replaceRules = ContentProcessor.get(book).getTitleReplaceRules() book.durChapterTitle = list.getOrElse(book.durChapterIndex) { list.last() } @@ -191,6 +194,11 @@ object LocalBook { return StringEscapeUtils.unescapeHtml4(content) } } + + if (content.isNullOrEmpty()) { + return null + } + return content } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt index ecb11ce8e..00947b4fb 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt @@ -214,9 +214,9 @@ class TextChapterLayout( emptyContent = contents.isEmpty(), isVolumeTitle = bookChapter.isVolume ) + pendingTextPage.lines.last().isParagraphEnd = true + stringBuilder.append("\n") } - pendingTextPage.lines.last().isParagraphEnd = true - stringBuilder.append("\n") durY += titleBottomSpacing // 如果是单图模式且当前页有内容,强制分页