From 0337e465de249f743de9379904c24672bc205293 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Fri, 14 Jun 2024 12:12:08 +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 --- .../main/java/io/legado/app/help/book/ContentProcessor.kt | 7 +------ .../java/io/legado/app/service/BaseReadAloudService.kt | 4 ++-- .../legado/app/ui/book/read/page/entities/TextChapter.kt | 7 +++---- .../io/legado/app/ui/book/read/page/entities/TextPage.kt | 1 + .../app/ui/book/read/page/provider/TextChapterLayout.kt | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/book/ContentProcessor.kt b/app/src/main/java/io/legado/app/help/book/ContentProcessor.kt index 27e1e56f5..1b2ee5219 100644 --- a/app/src/main/java/io/legado/app/help/book/ContentProcessor.kt +++ b/app/src/main/java/io/legado/app/help/book/ContentProcessor.kt @@ -188,7 +188,6 @@ class ContentProcessor private constructor( mContent = mContent.replace('\u00A0', ' ') } val contents = arrayListOf() - val paragraphIndent = ReadBookConfig.paragraphIndent mContent.split("\n").forEach { str -> val paragraph = str.trim { it.code <= 0x20 || it == ' ' @@ -197,14 +196,10 @@ class ContentProcessor private constructor( if (contents.isEmpty() && includeTitle) { contents.add(paragraph) } else { - contents.add("$paragraphIndent$paragraph") + contents.add("${ReadBookConfig.paragraphIndent}$paragraph") } } } - if (contents.isEmpty()) { - contents.add("${paragraphIndent}加载正文失败") - contents.add("${paragraphIndent}内容处理后为空") - } return BookContent(sameTitleRemoved, contents, effectiveReplaceRules) } diff --git a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt index f5febefb6..03263896a 100644 --- a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt @@ -218,7 +218,7 @@ abstract class BaseReadAloudService : BaseService(), } nowSpeak = textChapter.getParagraphNum(readAloudNumber + 1, readAloudByPage) - 1 if (!readAloudByPage && startPos == 0 && !toLast) { - pos = page.lines.first().chapterPosition - + pos = page.chapterPosition - textChapter.paragraphs[nowSpeak].chapterPosition } if (toLast) { @@ -226,7 +226,7 @@ abstract class BaseReadAloudService : BaseService(), readAloudNumber = textChapter.getLastParagraphPosition() nowSpeak = contentList.lastIndex if (page.paragraphs.size == 1) { - pos = page.lines.first().chapterPosition - + pos = page.chapterPosition - textChapter.paragraphs[nowSpeak].chapterPosition } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt index eb8524f5b..dd6fb476a 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt @@ -112,7 +112,7 @@ data class TextChapter( */ fun getReadLength(pageIndex: Int): Int { if (pageIndex < 0) return 0 - return pages[min(pageIndex, lastIndex)].lines.first().chapterPosition + return pages[min(pageIndex, lastIndex)].chapterPosition /* var length = 0 val maxIndex = min(pageIndex, pages.size) @@ -224,14 +224,13 @@ data class TextChapter( return -1 } val bIndex = pages.fastBinarySearchBy(charIndex, 0, pageSize) { - it.lines.first().chapterPosition + it.chapterPosition } val index = abs(bIndex + 1) - 1 // 判断是否已经排版到 charIndex ,没有则返回 -1 if (!isCompleted && index == pageSize - 1) { val page = pages[index] - val line = page.lines.first() - val pageEndPos = line.chapterPosition + page.charSize + val pageEndPos = page.chapterPosition + page.charSize if (charIndex > pageEndPos) { return -1 } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextPage.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextPage.kt index 1c1569cc1..1b45c457f 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextPage.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextPage.kt @@ -45,6 +45,7 @@ data class TextPage( val lines: List get() = textLines val lineSize: Int get() = textLines.size val charSize: Int get() = text.length.coerceAtLeast(1) + val chapterPosition: Int get() = textLines.first().chapterPosition val searchResult = hashSetOf() var isMsgPage: Boolean = false var canvasRecorder = CanvasRecorderFactory.create(true) 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 2d268c7e1..f4b9d1ee4 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 @@ -177,7 +177,7 @@ class TextChapterLayout( val contents = bookContent.textList var absStartX = paddingLeft var durY = 0f - if (ReadBookConfig.titleMode != 2 || bookChapter.isVolume) { + if (ReadBookConfig.titleMode != 2 || bookChapter.isVolume || contents.isEmpty()) { //标题非隐藏 displayTitle.splitNotBlank("\n").forEach { text -> setTypeText(