Skip to content

Commit 8ee008c

Browse files
committed
Fix Long-press gesture
Re: #345
1 parent ae14852 commit 8ee008c

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

app/src/main/java/com/gaurav/avnc/ui/vnc/input/TouchHandler.kt

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -364,20 +364,21 @@ class TouchHandler(private val frameView: FrameView, private val dispatcher: Dis
364364
* - +------------------+
365365
* - +->| [innerDetector1] |
366366
* - | +------------------+
367-
* - | (quick-tap, long-press)
367+
* - | (tap, long-press)
368368
* - +----------------+ event |
369369
* - | [onTouchEvent] |---------+
370370
* - +----------------+ |
371371
* - |
372372
* - | +------------------+ double-tap event +------------------+
373373
* - +->| [innerDetector2] |-------------------->| [innerDetector3] |
374374
* - +------------------+ +------------------+
375-
* - (confirmed-tap, double-tap) (double-tap-swipe)
375+
* - (double-tap) (double-tap-swipe)
376376
*
377377
*/
378-
private val innerDetector1 = GestureDetector(context, InnerListener1()).apply { setOnDoubleTapListener(null) }
378+
private val innerDetector1 = GestureDetector(context, InnerListener1())
379379
private val innerDetector2 = GestureDetector(context, InnerListener2()).apply { setIsLongpressEnabled(false) }
380380
private val innerDetector3 = GestureDetector(context, InnerListener3()).apply { setIsLongpressEnabled(false) }
381+
private val innerDetector4 = GestureDetector(context, InnerListener4()).apply { setOnDoubleTapListener(null) }
381382

382383
private val quickTap1Enabled = prefs.input.gesture.quickTap1Enabled
383384
private val longPressEnabled = prefs.input.gesture.longPressDetectionEnabled
@@ -392,8 +393,8 @@ class TouchHandler(private val frameView: FrameView, private val dispatcher: Dis
392393

393394

394395
private inner class InnerListener1 : SimpleOnGestureListener() {
395-
override fun onSingleTapUp(e: MotionEvent): Boolean {
396-
if (quickTap1Enabled)
396+
override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
397+
if (!quickTap1Enabled)
397398
listener.onSingleTapConfirmed(e)
398399
return true
399400
}
@@ -416,12 +417,6 @@ class TouchHandler(private val frameView: FrameView, private val dispatcher: Dis
416417
}
417418

418419
private inner class InnerListener2 : SimpleOnGestureListener() {
419-
override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
420-
if (!quickTap1Enabled)
421-
listener.onSingleTapConfirmed(e)
422-
return true
423-
}
424-
425420
override fun onDoubleTap(e: MotionEvent): Boolean {
426421
doubleTapDetected = true
427422
return true
@@ -436,6 +431,14 @@ class TouchHandler(private val frameView: FrameView, private val dispatcher: Dis
436431
override fun onScroll(e1: MotionEvent?, e2: MotionEvent, dx: Float, dy: Float) = handleScroll(e1, e2, dx, dy)
437432
}
438433

434+
private inner class InnerListener4 : SimpleOnGestureListener() {
435+
override fun onSingleTapUp(e: MotionEvent): Boolean {
436+
if (quickTap1Enabled)
437+
listener.onSingleTapConfirmed(e)
438+
return true
439+
}
440+
}
441+
439442
private fun handleScroll(e1: MotionEvent?, e2: MotionEvent, dx: Float, dy: Float): Boolean {
440443
e1 ?: return false
441444
if (!scrolling) {
@@ -467,6 +470,8 @@ class TouchHandler(private val frameView: FrameView, private val dispatcher: Dis
467470
fun onTouchEvent(e: MotionEvent): Boolean {
468471
innerDetector1.onTouchEvent(e)
469472
innerDetector2.onTouchEvent(e)
473+
if (quickTap1Enabled)
474+
innerDetector4.onTouchEvent(e)
470475

471476
when (e.actionMasked) {
472477
MotionEvent.ACTION_DOWN -> {

0 commit comments

Comments
 (0)