Skip to content

[Android] Fix wrong reported number of pointers#4218

Merged
j-piasecki merged 1 commit into
mainfrom
@jpiasecki/fix-android-number-of-pointers
Jun 2, 2026
Merged

[Android] Fix wrong reported number of pointers#4218
j-piasecki merged 1 commit into
mainfrom
@jpiasecki/fix-android-number-of-pointers

Conversation

@j-piasecki

Copy link
Copy Markdown
Member

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

Copilot AI review requested due to automatic review settings June 1, 2026 08:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes incorrect numberOfPointers reported to JS on Android for ACTION_POINTER_UP events (Android includes the lifted pointer in MotionEvent.pointerCount for that event), aligning the reported pointer count with the number of pointers remaining on screen and preventing pinch “jump” scenarios like #3435.

Changes:

  • Adjust numberOfPointers calculation on Android to report pointerCount - 1 for ACTION_POINTER_UP.
  • Preserve existing behavior for ACTION_UP / ACTION_CANCEL to stay consistent with iOS behavior as noted in the PR description.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@j-piasecki j-piasecki merged commit f17bcbd into main Jun 2, 2026
4 checks passed
@j-piasecki j-piasecki deleted the @jpiasecki/fix-android-number-of-pointers branch June 2, 2026 08:54
m-bert added a commit that referenced this pull request Jun 11, 2026
## Description

Cherry pick thread for release 2.32

## List of PRs

| PR  | Original commit |  Picked commit | Without confilct | 
|:----------:|:-------------:|:------:|:--------:|
| [[Android] Remove
`getChildInDrawingOrderAtIndex`](#4156)
|
[f1f09bc](f1f09bc)
|
[d76f2d9](d76f2d9)
| ❌ |
| [[iOS] Fix duplicated
`testID`](#4186)
|
[7feab6e](7feab6e)
|
[d1173ec](d1173ec)
| ❌ |
| [[Android] Fix discrete gestures not triggering
`onFinalize`](#4196)
|
[117087e](117087e)
|
[06212cf](06212cf)
| ✅ |
| [[Android] Fix wrong reported number of
pointers](#4218)
|
[f17bcbd](f17bcbd)
|
[5fd30f6](5fd30f6)
| ❌ |
| [fix(pods): Fix invalid `react-native/../react-native` resolution for
aliases](#4232)
|
[9a9f8b4](9a9f8b4)
|
[cacf6c0](cacf6c0)
| ✅ |
| [Move ruby utils to
module](#4245)
|
[62d0d52](62d0d52)
|
[3884f30](3884f30)
| ❌ |
| [[iOS] Fix handler retrieval and mismatched coordinate
space](#4199)
|
[b1da40b](b1da40b)
|
[2b48a8e](2b48a8e)
| ❌ |
| [[iOS] Don't iterate to root while resolving
recognizer](#4202)
|
[fba4dcc](fba4dcc)
|
[b81f2aa](b81f2aa)
| ❌ |
| [Support React Native
0.86](#4166)
|
[96dfc00](96dfc00)
|
[7df6d1a](7df6d1a)
| ❌ |
| [Fix `RNRenderer` import for React Native
0.86](#4160)
|
[0417378](0417378)
|
[6775d33](6775d33)
| ❌ |
| [Bump `expo` to stable
56](#4227)
|
[45e6ac8](45e6ac8)
|
[0478bb5](0478bb5)
| ❌ |
| [[macOS] Bump example
app](#3993)
|
[8ec0820](8ec0820)
|
[cfc5dd4](cfc5dd4)
| ❌ |
| [Bump
Reanimated](#4040)
|
[23d96d9](23d96d9)
|
[a2101eb](a2101eb)
| ❌ |
| [fix(Android): apply `numberOfPointers` config to the pointer
requirement in
`LongPressGestureHandler`](#4253)
|
[a70c6e3](a70c6e3)
|
[af40f9b](af40f9b)
| ✅ |

## Test plan

Tested that example apps are built correctly

---------

Co-authored-by: Pieter De Baets <pieter.debaets@gmail.com>
Co-authored-by: Mathieu Acthernoene <zoontek@gmail.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Phil Pluckthun <phil@kitten.sh>
Co-authored-by: prashanFOMO <prashan@fomo.family>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Android pointer number remains 2 when lifting one finger during pinch gesture

3 participants