Skip to content

Commit f17bcbd

Browse files
authored
[Android] Fix wrong reported number of pointers (#4218)
## Description Fixes #3435 Android includes the pointer being lifted in the `ACTION_POINTER_UP` event, so the event where the pointer is lifted is sent with `numberOfPointers = 2`. This PR changes that so the `numberOfPointers` is reported as `n - 1` for `ACTION_POINTER_UP` events. Note: The same applies to `ACTION_UP` and `ACTION_CANCEL` but I didn't include them to keep the behavior the same as on iOS. ## Test plan Reproducer from #3435
1 parent 818dba6 commit f17bcbd

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

  • packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core

packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,10 @@ open class GestureHandler {
411411
}
412412
}
413413

414-
numberOfPointers = adaptedTransformedEvent.pointerCount
414+
numberOfPointers = when (adaptedTransformedEvent.actionMasked) {
415+
MotionEvent.ACTION_POINTER_UP -> adaptedTransformedEvent.pointerCount - 1
416+
else -> adaptedTransformedEvent.pointerCount
417+
}
415418

416419
x = adaptedTransformedEvent.x
417420
y = adaptedTransformedEvent.y

0 commit comments

Comments
 (0)