From 4e5f16dae5c24245377a868a740c1c98bd024eee Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 14 Feb 2020 20:28:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/constant/PreferKey.kt | 1 + .../io/legado/app/ui/book/read/page/PageView.kt | 1 + .../read/page/delegate/HorizontalPageDelegate.kt | 8 ++++++++ .../app/ui/book/read/page/delegate/PageDelegate.kt | 4 ++++ .../book/read/page/delegate/ScrollPageDelegate.kt | 13 +++++++++++++ 5 files changed, 27 insertions(+) diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index c223f6f07..f654786a9 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -33,4 +33,5 @@ object PreferKey { const val changeSourceLoadToc = "changeSourceLoadToc" const val chineseConverterType = "chineseConverterType" const val launcherIcon = "launcherIcon" + const val selectText = "selectText" } \ No newline at end of file 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 02c8e409b..7f93b9968 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 @@ -98,6 +98,7 @@ class PageView(context: Context, attrs: AttributeSet) : 3 -> ScrollPageDelegate(this) else -> NoAnimPageDelegate(this) } + pageDelegate?.upSelectAble() upContent() } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/HorizontalPageDelegate.kt b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/HorizontalPageDelegate.kt index ebb76100c..fb928a56e 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/HorizontalPageDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/HorizontalPageDelegate.kt @@ -1,7 +1,9 @@ package io.legado.app.ui.book.read.page.delegate import android.view.MotionEvent +import io.legado.app.constant.PreferKey import io.legado.app.ui.book.read.page.PageView +import io.legado.app.utils.getPrefBoolean import io.legado.app.utils.screenshot import kotlin.math.abs @@ -46,4 +48,10 @@ abstract class HorizontalPageDelegate(pageView: PageView) : PageDelegate(pageVie } return isMoved } + + override fun upSelectAble() { + pageView.curPage + ?.contentTextView() + ?.isSelected = context.getPrefBoolean(PreferKey.selectText) + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt index d0ad7bbf8..0fae87996 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt @@ -1,5 +1,6 @@ package io.legado.app.ui.book.read.page.delegate +import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.RectF @@ -21,6 +22,7 @@ abstract class PageDelegate(protected val pageView: PageView) { pageView.width * 0.33f, pageView.height * 0.33f, pageView.width * 0.66f, pageView.height * 0.66f ) + protected val context: Context = pageView.context //起始点 protected var startX: Float = 0.toFloat() protected var startY: Float = 0.toFloat() @@ -205,6 +207,8 @@ abstract class PageDelegate(protected val pageView: PageView) { return detector.onTouchEvent(event) } + abstract fun upSelectAble() + abstract fun onScrollStart()//scroller start abstract fun onDraw(canvas: Canvas)//绘制 diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt index 5b25392a2..d586a35f5 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt @@ -2,8 +2,11 @@ package io.legado.app.ui.book.read.page.delegate import android.graphics.Canvas import android.graphics.Matrix +import android.text.method.ScrollingMovementMethod import android.view.MotionEvent +import io.legado.app.constant.PreferKey import io.legado.app.ui.book.read.page.PageView +import io.legado.app.utils.getPrefBoolean import io.legado.app.utils.screenshot import kotlin.math.abs @@ -117,4 +120,14 @@ class ScrollPageDelegate(pageView: PageView) : PageDelegate(pageView) { return isMoved } + override fun upSelectAble() { + if (context.getPrefBoolean(PreferKey.selectText)) { + pageView.curPage?.contentTextView()?.isSelected = true + } else { + pageView.curPage?.isSelected = false + pageView.curPage + ?.contentTextView() + ?.movementMethod = ScrollingMovementMethod.getInstance() + } + } } \ No newline at end of file