From dc8e7a00ca2f6b3743442b445f96a2e1862c1204 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Mon, 15 Apr 2024 12:20:50 +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/ui/book/read/page/ReadView.kt | 8 ++++++-- .../legado/app/ui/book/read/page/entities/TextLine.kt | 6 +++--- .../ui/book/read/page/entities/column/TextColumn.kt | 10 +++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt index 51081d989..480f3b572 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt @@ -647,6 +647,9 @@ class ReadView(context: Context, attrs: AttributeSet) : } fun invalidateTextPage() { + if (!AppConfig.optimizeRender) { + return + } pageFactory.run { prevPage.invalidateAll() curPage.invalidateAll() @@ -670,9 +673,10 @@ class ReadView(context: Context, attrs: AttributeSet) : fun submitRenderTask() { if (!AppConfig.optimizeRender) { - return + curPage.invalidateContentView() + } else { + curPage.submitRenderTask() } - curPage.submitRenderTask() } fun isLongScreenShot(): Boolean { diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt index cb6180bd4..0d80f144d 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt @@ -178,6 +178,9 @@ data class TextLine( } else { ReadBookConfig.textColor } + if (textPaint.color != textColor) { + textPaint.color = textColor + } val paint = PaintPool.obtain() paint.set(textPaint) if (extraLetterSpacing != 0f) { @@ -186,9 +189,6 @@ data class TextLine( if (wordSpacing != 0f) { paint.wordSpacing = wordSpacing } - if (paint.color != textColor) { - paint.color = textColor - } if (extraLetterSpacingOffsetX != 0f) { canvas.withTranslation(extraLetterSpacingOffsetX) { canvas.drawText(text, indentSize, text.length, startX, lineBase - lineTop, paint) diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextColumn.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextColumn.kt index cf010a08c..2f4ff82c5 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextColumn.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextColumn.kt @@ -2,7 +2,6 @@ package io.legado.app.ui.book.read.page.entities.column import android.graphics.Canvas import androidx.annotation.Keep -import io.legado.app.help.PaintPool import io.legado.app.help.config.ReadBookConfig import io.legado.app.lib.theme.ThemeStore import io.legado.app.ui.book.read.page.ContentTextView @@ -53,13 +52,10 @@ data class TextColumn( } else { ReadBookConfig.textColor } - val paint = PaintPool.obtain() - paint.set(textPaint) - if (paint.color != textColor) { - paint.color = textColor + if (textPaint.color != textColor) { + textPaint.color = textColor } - canvas.drawText(charData, start, textLine.lineBase - textLine.lineTop, paint) - PaintPool.recycle(paint) + canvas.drawText(charData, start, textLine.lineBase - textLine.lineTop, textPaint) if (selected) { canvas.drawRect(start, 0f, end, textLine.height, view.selectedPaint) }