From f89c8b1d98cd25a5f8e8bb2b5866688445cfe2b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leo=20Nikkil=C3=A4?= Date: Mon, 16 Jul 2018 21:13:47 +0300 Subject: [PATCH] Don't cancel long press after activation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Makes long presses more consistent with iOS, which doesn’t cancel the gesture due to maxDist if it’s already in the `ACTIVE` state. This is also more consistent with TapGestureHandler, whose docs specifically say that maxDist fails if the “handler hasn't yet activated”. --- .../swmansion/gesturehandler/LongPressGestureHandler.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java b/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java index b53848e0fc..201e122051 100644 --- a/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +++ b/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java @@ -57,12 +57,8 @@ public void run() { float deltaX = event.getRawX() - mStartX; float deltaY = event.getRawY() - mStartY; float distSq = deltaX * deltaX + deltaY * deltaY; - if (distSq > mMaxDistSq) { - if (getState() == STATE_ACTIVE) { - cancel(); - } else { - fail(); - } + if (distSq > mMaxDistSq && getState() != STATE_ACTIVE) { + fail(); } } }