fix(android): remove the redundant PageSelectedEvent
dispatch causing an ANR on RN 0.72
#770
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes a redundant
PageSelectedEvent
dispatch causing an ANR on RN 0.72.Closes #752
Summary
In the following function:
react-native-pager-view/android/src/fabric/java/com/reactnativepagerview/PagerViewViewManager.kt
Lines 167 to 182 in 2946c1c
On the new architecture, using RN 0.72, the event in L178-L180 is dispatched with an incorrect
view.id
of-1
which apparently trips React Native up causing a silent error leading to an ANR.One way to fix it is to adjust the ID used with this dispatch, e.g. by replacing
view.id
withroot.id
, which contains the correct ID value, which solves the issue.However, the
PagerViewViewManagerImpl.setCurrentItem(...)
call in L176 also (implicitly) triggers aPageSelectedEvent
dispatch, via theonPageSelected
callback:react-native-pager-view/android/src/fabric/java/com/reactnativepagerview/PagerViewViewManager.kt
Lines 54 to 59 in 2946c1c
Which makes the first dispatch redundant. Hence, this PR removes this dispatch on both architectures (consulted with @troZee).
Test Plan
Test the example app on both architectures and confirm there's no ANR.
Compatibility
Checklist
README.md