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
+}