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 7873709cd..dcf1c9c9f 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 @@ -218,10 +218,8 @@ data class TextLine( if (exceed || !onlyTextColumn || textPage.isMsgPage) { return false } - if (wordSpacing != 0f) { - if (!atLeastApi26 || !wordSpacingWorking) { - return false - } + if (wordSpacing != 0f && (!atLeastApi26 || !wordSpacingWorking)) { + return false } return searchResultColumnCount == 0 } @@ -244,14 +242,19 @@ data class TextLine( val emptyTextLine = TextLine() private val atLeastApi26 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O private val wordSpacingWorking by lazy { - // issue 3785 + // issue 3785 3846 val paint = PaintPool.obtain() val text = "一二 三" val width1 = paint.measureText(text) - paint.wordSpacing = 10f - val width2 = paint.measureText(text) - PaintPool.recycle(paint) - width2 - width1 == 10f + try { + paint.wordSpacing = 10f + val width2 = paint.measureText(text) + width2 - width1 == 10f + } catch (e: NoSuchMethodError) { + false + } finally { + PaintPool.recycle(paint) + } } }