diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt index 14e2f8f68..91e182c47 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt @@ -524,7 +524,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at } } - private fun relativePage(relativePos: Int): TextPage { + fun relativePage(relativePos: Int): TextPage { return when (relativePos) { 0 -> textPage 1 -> pageFactory.nextPage diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt index 2cc6c5b46..f838c3166 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt @@ -271,6 +271,10 @@ class PageView(context: Context) : FrameLayout(context) { return binding.contentTextView.createBookmark() } + fun relativePage(relativePos: Int): TextPage { + return binding.contentTextView.relativePage(relativePos) + } + val selectedText: String get() = binding.contentTextView.selectedText val textPage get() = binding.contentTextView.textPage 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 2fd5e12c9..0c05ae0b2 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 @@ -265,8 +265,9 @@ class ReadView(context: Context, attrs: AttributeSet) : */ private fun onLongPress() { kotlin.runCatching { - with(curPage.textPage) { - curPage.selectText(startX, startY) { relativePage, lineIndex, charIndex -> + curPage.selectText(startX, startY) { relativePage, lineIndex, charIndex -> + val page = if (isScroll) curPage.relativePage(relativePage) else curPage.textPage + with(page) { isTextSelected = true firstRelativePage = relativePage firstLineIndex = lineIndex