Horis %!s(int64=2) %!d(string=hai) anos
pai
achega
c9e8972b8b

+ 1 - 6
app/src/main/java/io/legado/app/help/book/ContentProcessor.kt

@@ -188,7 +188,6 @@ class ContentProcessor private constructor(
             mContent = mContent.replace('\u00A0', ' ')
             mContent = mContent.replace('\u00A0', ' ')
         }
         }
         val contents = arrayListOf<String>()
         val contents = arrayListOf<String>()
-        val paragraphIndent = ReadBookConfig.paragraphIndent
         mContent.split("\n").forEach { str ->
         mContent.split("\n").forEach { str ->
             val paragraph = str.trim {
             val paragraph = str.trim {
                 it.code <= 0x20 || it == ' '
                 it.code <= 0x20 || it == ' '
@@ -197,14 +196,10 @@ class ContentProcessor private constructor(
                 if (contents.isEmpty() && includeTitle) {
                 if (contents.isEmpty() && includeTitle) {
                     contents.add(paragraph)
                     contents.add(paragraph)
                 } else {
                 } else {
-                    contents.add("$paragraphIndent$paragraph")
+                    contents.add("${ReadBookConfig.paragraphIndent}$paragraph")
                 }
                 }
             }
             }
         }
         }
-        if (contents.isEmpty()) {
-            contents.add("${paragraphIndent}加载正文失败")
-            contents.add("${paragraphIndent}内容处理后为空")
-        }
         return BookContent(sameTitleRemoved, contents, effectiveReplaceRules)
         return BookContent(sameTitleRemoved, contents, effectiveReplaceRules)
     }
     }
 
 

+ 2 - 2
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
             nowSpeak = textChapter.getParagraphNum(readAloudNumber + 1, readAloudByPage) - 1
             if (!readAloudByPage && startPos == 0 && !toLast) {
             if (!readAloudByPage && startPos == 0 && !toLast) {
-                pos = page.lines.first().chapterPosition -
+                pos = page.chapterPosition -
                         textChapter.paragraphs[nowSpeak].chapterPosition
                         textChapter.paragraphs[nowSpeak].chapterPosition
             }
             }
             if (toLast) {
             if (toLast) {
@@ -226,7 +226,7 @@ abstract class BaseReadAloudService : BaseService(),
                 readAloudNumber = textChapter.getLastParagraphPosition()
                 readAloudNumber = textChapter.getLastParagraphPosition()
                 nowSpeak = contentList.lastIndex
                 nowSpeak = contentList.lastIndex
                 if (page.paragraphs.size == 1) {
                 if (page.paragraphs.size == 1) {
-                    pos = page.lines.first().chapterPosition -
+                    pos = page.chapterPosition -
                             textChapter.paragraphs[nowSpeak].chapterPosition
                             textChapter.paragraphs[nowSpeak].chapterPosition
                 }
                 }
             }
             }

+ 3 - 4
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 {
     fun getReadLength(pageIndex: Int): Int {
         if (pageIndex < 0) return 0
         if (pageIndex < 0) return 0
-        return pages[min(pageIndex, lastIndex)].lines.first().chapterPosition
+        return pages[min(pageIndex, lastIndex)].chapterPosition
         /*
         /*
         var length = 0
         var length = 0
         val maxIndex = min(pageIndex, pages.size)
         val maxIndex = min(pageIndex, pages.size)
@@ -224,14 +224,13 @@ data class TextChapter(
             return -1
             return -1
         }
         }
         val bIndex = pages.fastBinarySearchBy(charIndex, 0, pageSize) {
         val bIndex = pages.fastBinarySearchBy(charIndex, 0, pageSize) {
-            it.lines.first().chapterPosition
+            it.chapterPosition
         }
         }
         val index = abs(bIndex + 1) - 1
         val index = abs(bIndex + 1) - 1
         // 判断是否已经排版到 charIndex ,没有则返回 -1
         // 判断是否已经排版到 charIndex ,没有则返回 -1
         if (!isCompleted && index == pageSize - 1) {
         if (!isCompleted && index == pageSize - 1) {
             val page = pages[index]
             val page = pages[index]
-            val line = page.lines.first()
-            val pageEndPos = line.chapterPosition + page.charSize
+            val pageEndPos = page.chapterPosition + page.charSize
             if (charIndex > pageEndPos) {
             if (charIndex > pageEndPos) {
                 return -1
                 return -1
             }
             }

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/read/page/entities/TextPage.kt

@@ -45,6 +45,7 @@ data class TextPage(
     val lines: List<TextLine> get() = textLines
     val lines: List<TextLine> get() = textLines
     val lineSize: Int get() = textLines.size
     val lineSize: Int get() = textLines.size
     val charSize: Int get() = text.length.coerceAtLeast(1)
     val charSize: Int get() = text.length.coerceAtLeast(1)
+    val chapterPosition: Int get() = textLines.first().chapterPosition
     val searchResult = hashSetOf<TextColumn>()
     val searchResult = hashSetOf<TextColumn>()
     var isMsgPage: Boolean = false
     var isMsgPage: Boolean = false
     var canvasRecorder = CanvasRecorderFactory.create(true)
     var canvasRecorder = CanvasRecorderFactory.create(true)

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt

@@ -177,7 +177,7 @@ class TextChapterLayout(
         val contents = bookContent.textList
         val contents = bookContent.textList
         var absStartX = paddingLeft
         var absStartX = paddingLeft
         var durY = 0f
         var durY = 0f
-        if (ReadBookConfig.titleMode != 2 || bookChapter.isVolume) {
+        if (ReadBookConfig.titleMode != 2 || bookChapter.isVolume || contents.isEmpty()) {
             //标题非隐藏
             //标题非隐藏
             displayTitle.splitNotBlank("\n").forEach { text ->
             displayTitle.splitNotBlank("\n").forEach { text ->
                 setTypeText(
                 setTypeText(