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 806e8f50b..d981c33ce 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 @@ -160,6 +160,17 @@ data class TextLine( columns[i].draw(view, canvas) } } + + // 墨水屏模式下的朗读和搜索下划线 + if (AppConfig.isEInkMode && (isReadAloud || searchResultColumnCount > 0)) { + val underlinePaint = PaintPool.obtain() + underlinePaint.set(ChapterProvider.contentPaint) + underlinePaint.strokeWidth = 1.dpToPx().toFloat() + val lineY = height - 1.dpToPx() + canvas.drawLine(lineStart + indentWidth, lineY, lineEnd, lineY, underlinePaint) + PaintPool.recycle(underlinePaint) + } + if (ReadBookConfig.underline && !isImage && ReadBook.book?.isImage != true) { drawUnderline(canvas) } diff --git a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchResult.kt b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchResult.kt index 6da724e3c..ea24702a9 100644 --- a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchResult.kt +++ b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchResult.kt @@ -2,6 +2,7 @@ package io.legado.app.ui.book.searchContent import android.text.Spanned import androidx.core.text.HtmlCompat +import io.legado.app.help.config.AppConfig data class SearchResult( val resultCount: Int = 0, @@ -22,23 +23,39 @@ data class SearchResult( val leftString = resultText.substring(0, queryIndexInSurrounding) val rightString = resultText.substring(queryIndexInSurrounding + query.length, resultText.length) - val html = buildString { - append(chapterTitle.colorTextForHtml(accentColor)) - append("
") - append(leftString.colorTextForHtml(textColor)) - append(query.colorTextForHtml(accentColor)) - append(rightString.colorTextForHtml(textColor)) + + // 检查是否为墨水屏模式 + val html = if (AppConfig.isEInkMode) { + // 墨水屏模式:使用下划线 + buildString { + append("${chapterTitle}") + append("
") + append(leftString) + append("${query}") + append(rightString) + } + } else { + // 普通模式:使用颜色 + buildString { + append(chapterTitle.colorTextForHtml(accentColor)) + append("
") + append(leftString.colorTextForHtml(textColor)) + append(query.colorTextForHtml(accentColor)) + append(rightString.colorTextForHtml(textColor)) + } } HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY) } else { - HtmlCompat.fromHtml( - resultText.colorTextForHtml(textColor), - HtmlCompat.FROM_HTML_MODE_LEGACY - ) + val html = if (AppConfig.isEInkMode) { + resultText + } else { + resultText.colorTextForHtml(textColor) + } + HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY) } } private fun String.colorTextForHtml(textColor: String) = "$this" -} \ No newline at end of file +}