Skip to content

[Android] Remove getChildInDrawingOrderAtIndex#4156

Merged
j-piasecki merged 1 commit into
software-mansion:mainfrom
javache:pieterdb/remove-getChildInDrawingOrderAtIndex
May 8, 2026
Merged

[Android] Remove getChildInDrawingOrderAtIndex#4156
j-piasecki merged 1 commit into
software-mansion:mainfrom
javache:pieterdb/remove-getChildInDrawingOrderAtIndex

Conversation

@javache

@javache javache commented May 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the getChildInDrawingOrderAtIndex abstraction from ViewConfigurationHelper and its implementation in RNViewConfigurationHelper
  • Inline viewGroup.getChildAt(i) at the two call sites (GestureHandlerOrchestrator and HoverGestureHandler)
  • ReactViewGroup.getZIndexMappedChildIndex is a legacy architecture API that has been a no-op (returns its input unchanged) and has been removed in Remove setViewZIndex and associated state from BaseViewManager react/react-native#56717

Test plan

  • Android build via cd apps/basic-example && yarn android

`ReactViewGroup.getZIndexMappedChildIndex` was a legacy architecture API
that has been a no-op (returning its input unchanged) and is being
removed in the next React Native release. Remove the
`getChildInDrawingOrderAtIndex` abstraction entirely and inline the
`getChildAt` call at each usage site.
Copilot AI review requested due to automatic review settings May 7, 2026 17:53

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

This PR removes the getChildInDrawingOrderAtIndex abstraction from the Android ViewConfigurationHelper API and inlines ViewGroup.getChildAt(i) at the two call sites where child traversal is performed. The intent is to align RNGH with upstream React Native changes where ReactViewGroup.getZIndexMappedChildIndex is being removed.

Changes:

  • Removed getChildInDrawingOrderAtIndex from ViewConfigurationHelper and deleted its RNViewConfigurationHelper implementation.
  • Inlined viewGroup.getChildAt(i) traversal in GestureHandlerOrchestrator and HoverGestureHandler.
  • Removed the now-unused RNViewConfigurationHelper companion instance from HoverGestureHandler.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt Removes the getChildInDrawingOrderAtIndex override implementation.
packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt Removes getChildInDrawingOrderAtIndex from the interface.
packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt Inlines getChildAt traversal and removes the static RNViewConfigurationHelper.
packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt Inlines getChildAt traversal in child extraction loop.

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

@j-piasecki j-piasecki left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thank you ❤️

@j-piasecki j-piasecki merged commit f1f09bc into software-mansion:main May 8, 2026
6 of 7 checks passed
@javache javache deleted the pieterdb/remove-getChildInDrawingOrderAtIndex branch May 8, 2026 10:39
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.

3 participants