File tree Expand file tree Collapse file tree
packages/react-native-gesture-handler
android/src/main/java/com/swmansion/gesturehandler/react Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2919,7 +2919,7 @@ SPEC CHECKSUMS:
29192919 FBLazyVector: a293a88992c4c33f0aee184acab0b64a08ff9458
29202920 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
29212921 glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
2922- hermes-engine: db854ab6e74b584dc130d3ed0be3425726bac226
2922+ hermes-engine: eec912f8a125ae0d3ad67b2e7b81a227319aa13b
29232923 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669
29242924 RCTDeprecation: 2b70c6e3abe00396cefd8913efbf6a2db01a2b36
29252925 RCTRequired: f3540eee8094231581d40c5c6d41b0f170237a81
@@ -2993,7 +2993,7 @@ SPEC CHECKSUMS:
29932993 RNReanimated: 987d0b9af435441cc2ebc2a32ad06cafe8777d4e
29942994 RNWorklets: 12b2d7cdcb48acbdd0b324d1fa810f849089bd7b
29952995 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
2996- Yoga: 6ca93c8c13f56baeec55eb608577619b17a4d64e
2996+ Yoga: 7a9f26c70daf0b08d82ec2f862e9a8872442129e
29972997
29982998PODFILE CHECKSUM: ecce038d8e4749ee17b7dea28be0590cdc8b4836
29992999
Original file line number Diff line number Diff line change @@ -2,6 +2,8 @@ package com.swmansion.gesturehandler.react
22
33import android.content.Context
44import android.view.View
5+ import android.view.ViewGroup
6+ import androidx.core.view.isNotEmpty
57import com.facebook.react.bridge.ReadableArray
68import com.facebook.react.uimanager.ThemedReactContext
79import com.facebook.react.uimanager.UIManagerHelper
@@ -160,6 +162,14 @@ class RNGestureHandlerDetectorView(context: Context) : ReactViewGroup(context) {
160162 // Note: RefreshControl is wrapped with a VirtualDetector, and native gestures for it are attached in `attachVirtualChildren`.
161163 val id = if (child is ReactSwipeRefreshLayout ) {
162164 child.getChildAt(0 ).id
165+ // TODO: figure out how to do it correctly
166+ } else if (child is ViewGroup && child.isNotEmpty()) {
167+ val grandChild = child.getChildAt(0 )
168+ if (grandChild is RNGestureHandlerButtonViewManager .ButtonViewGroup ) {
169+ grandChild.id
170+ } else {
171+ child.id
172+ }
163173 } else {
164174 child.id
165175 }
Original file line number Diff line number Diff line change 99#import < react/renderer/components/rngesturehandler_codegen/Props.h>
1010#import < react/renderer/components/rngesturehandler_codegen/RCTComponentViewHelpers.h>
1111
12+ #import < React/RCTScrollViewComponentView.h>
1213#include < unordered_map>
1314
1415@interface RNGestureHandlerDetector () <RCTRNGestureHandlerDetectorViewProtocol>
@@ -295,10 +296,19 @@ - (void)tryAttachNativeHandlersToChildView
295296
296297 RNGHUIView *view = self.subviews [0 ];
297298
298- if ([view isKindOfClass: [RCTViewComponentView class ]]) {
299+ // TODO: figure out how to do it correctly
300+ if ([view isKindOfClass: [RCTViewComponentView class ]] && ![view isKindOfClass: [RCTScrollViewComponentView class ]]) {
299301 RCTViewComponentView *componentView = (RCTViewComponentView *)view;
300302 if (componentView.contentView != nil ) {
301303 view = componentView.contentView ;
304+ } else if (componentView.subviews .count > 0 ) {
305+ view = componentView.subviews [0 ];
306+ if ([view isKindOfClass: [RCTViewComponentView class ]]) {
307+ RCTViewComponentView *componentView = (RCTViewComponentView *)view;
308+ if (componentView.contentView != nil ) {
309+ view = componentView.contentView ;
310+ }
311+ }
302312 }
303313 }
304314
You can’t perform that action at this time.
0 commit comments