|
@@ -53,6 +53,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
val defaultAnimationSpeed = 300
|
|
val defaultAnimationSpeed = 300
|
|
|
private var pressDown = false
|
|
private var pressDown = false
|
|
|
private var isMove = false
|
|
private var isMove = false
|
|
|
|
|
+ private var isPageMove = false
|
|
|
|
|
|
|
|
//起始点
|
|
//起始点
|
|
|
var startX: Float = 0f
|
|
var startX: Float = 0f
|
|
@@ -81,6 +82,13 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
private val initialTextPos = TextPos(0, 0, 0)
|
|
private val initialTextPos = TextPos(0, 0, 0)
|
|
|
|
|
|
|
|
val slopSquare by lazy { ViewConfiguration.get(context).scaledTouchSlop }
|
|
val slopSquare by lazy { ViewConfiguration.get(context).scaledTouchSlop }
|
|
|
|
|
+ val pageSlopSquare by lazy {
|
|
|
|
|
+ if (AppConfig.pageTouchSlop == 0) {
|
|
|
|
|
+ slopSquare
|
|
|
|
|
+ } else {
|
|
|
|
|
+ AppConfig.pageTouchSlop
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
private val tlRect = RectF()
|
|
private val tlRect = RectF()
|
|
|
private val tcRect = RectF()
|
|
private val tcRect = RectF()
|
|
|
private val trRect = RectF()
|
|
private val trRect = RectF()
|
|
@@ -188,6 +196,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
postDelayed(longPressRunnable, longPressTimeout)
|
|
postDelayed(longPressRunnable, longPressTimeout)
|
|
|
pressDown = true
|
|
pressDown = true
|
|
|
isMove = false
|
|
isMove = false
|
|
|
|
|
+ isPageMove = false
|
|
|
pageDelegate?.onTouch(event)
|
|
pageDelegate?.onTouch(event)
|
|
|
pageDelegate?.onDown()
|
|
pageDelegate?.onDown()
|
|
|
setStartPoint(event.x, event.y)
|
|
setStartPoint(event.x, event.y)
|
|
@@ -197,12 +206,16 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
isMove =
|
|
isMove =
|
|
|
abs(startX - event.x) > slopSquare || abs(startY - event.y) > slopSquare
|
|
abs(startX - event.x) > slopSquare || abs(startY - event.y) > slopSquare
|
|
|
}
|
|
}
|
|
|
|
|
+ if (!isPageMove) {
|
|
|
|
|
+ isPageMove =
|
|
|
|
|
+ abs(startX - event.x) > pageSlopSquare || abs(startY - event.y) > pageSlopSquare
|
|
|
|
|
+ }
|
|
|
if (isMove) {
|
|
if (isMove) {
|
|
|
longPressed = false
|
|
longPressed = false
|
|
|
removeCallbacks(longPressRunnable)
|
|
removeCallbacks(longPressRunnable)
|
|
|
if (isTextSelected) {
|
|
if (isTextSelected) {
|
|
|
selectText(event.x, event.y)
|
|
selectText(event.x, event.y)
|
|
|
- } else {
|
|
|
|
|
|
|
+ } else if (isPageMove) {
|
|
|
pageDelegate?.onTouch(event)
|
|
pageDelegate?.onTouch(event)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -212,7 +225,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
removeCallbacks(longPressRunnable)
|
|
removeCallbacks(longPressRunnable)
|
|
|
if (!pressDown) return true
|
|
if (!pressDown) return true
|
|
|
pressDown = false
|
|
pressDown = false
|
|
|
- if (!isMove) {
|
|
|
|
|
|
|
+ if (!isPageMove) {
|
|
|
if (!longPressed && !pressOnTextSelected) {
|
|
if (!longPressed && !pressOnTextSelected) {
|
|
|
onSingleTapUp()
|
|
onSingleTapUp()
|
|
|
return true
|
|
return true
|
|
@@ -220,7 +233,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
}
|
|
}
|
|
|
if (isTextSelected) {
|
|
if (isTextSelected) {
|
|
|
callBack.showTextActionMenu()
|
|
callBack.showTextActionMenu()
|
|
|
- } else if (isMove) {
|
|
|
|
|
|
|
+ } else if (isPageMove) {
|
|
|
pageDelegate?.onTouch(event)
|
|
pageDelegate?.onTouch(event)
|
|
|
}
|
|
}
|
|
|
pressOnTextSelected = false
|
|
pressOnTextSelected = false
|
|
@@ -231,7 +244,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
pressDown = false
|
|
pressDown = false
|
|
|
if (isTextSelected) {
|
|
if (isTextSelected) {
|
|
|
callBack.showTextActionMenu()
|
|
callBack.showTextActionMenu()
|
|
|
- } else if (isMove) {
|
|
|
|
|
|
|
+ } else if (isPageMove) {
|
|
|
pageDelegate?.onTouch(event)
|
|
pageDelegate?.onTouch(event)
|
|
|
}
|
|
}
|
|
|
pressOnTextSelected = false
|
|
pressOnTextSelected = false
|