react-native-gesture-handler 1.10.3 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/android/build.gradle +49 -1
- package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
- package/android/gradle.properties +19 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +713 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +562 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +289 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +79 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +348 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +57 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +59 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +8 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +61 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +686 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +17 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +95 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +132 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +68 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +34 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +66 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
- package/ios/Handlers/RNFlingHandler.m +78 -5
- package/ios/Handlers/RNForceTouchHandler.m +29 -4
- package/ios/Handlers/RNLongPressHandler.m +105 -3
- package/ios/Handlers/RNManualHandler.h +4 -0
- package/ios/Handlers/RNManualHandler.m +73 -0
- package/ios/Handlers/RNNativeViewHandler.m +30 -2
- package/ios/Handlers/RNPanHandler.m +64 -4
- package/ios/Handlers/RNPinchHandler.m +61 -2
- package/ios/Handlers/RNRotationHandler.m +60 -1
- package/ios/Handlers/RNTapHandler.m +55 -8
- package/ios/RNGestureHandler.h +18 -4
- package/ios/RNGestureHandler.m +123 -13
- package/ios/RNGestureHandlerEvents.h +9 -0
- package/ios/RNGestureHandlerEvents.m +34 -0
- package/ios/RNGestureHandlerManager.h +7 -0
- package/ios/RNGestureHandlerManager.m +62 -34
- package/ios/RNGestureHandlerModule.m +39 -3
- package/ios/RNGestureHandlerPointerTracker.h +25 -0
- package/ios/RNGestureHandlerPointerTracker.m +237 -0
- package/ios/RNGestureHandlerRegistry.h +1 -0
- package/ios/RNGestureHandlerRegistry.m +10 -0
- package/ios/RNGestureHandlerStateManager.h +5 -0
- package/ios/RNManualActivationRecognizer.h +10 -0
- package/ios/RNManualActivationRecognizer.m +80 -0
- package/ios/RNRootViewGestureRecognizer.m +1 -1
- package/ios/RNTouchEventType.h +9 -0
- package/lib/commonjs/EventType.js +16 -0
- package/lib/commonjs/EventType.js.map +1 -0
- package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
- package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootView.js +11 -3
- package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.js +3 -1
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +41 -37
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +31 -12
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +10 -6
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/createHandler.js +52 -83
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +440 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
- package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -0
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
- package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gesture.js +193 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
- package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/panGesture.js +144 -0
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
- package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
- package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
- package/lib/commonjs/handlers/handlersRegistry.js +31 -0
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
- package/lib/commonjs/index.js +146 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +13 -0
- package/lib/commonjs/init.js.map +1 -0
- package/lib/commonjs/mocks.js +31 -2
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/utils.js +15 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/Errors.js +1 -1
- package/lib/commonjs/web/Errors.js.map +1 -1
- package/lib/commonjs/web/GestureHandler.js +4 -6
- package/lib/commonjs/web/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/NodeManager.js +8 -2
- package/lib/commonjs/web/NodeManager.js.map +1 -1
- package/lib/module/EventType.js +8 -0
- package/lib/module/EventType.js.map +1 -0
- package/lib/module/GestureHandlerRootView.android.js +2 -14
- package/lib/module/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/GestureHandlerRootView.js +5 -1
- package/lib/module/GestureHandlerRootView.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.js +3 -1
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +2 -2
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +43 -40
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureComponents.js +29 -11
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/Swipeable.js +9 -6
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +2 -1
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/gestureHandlerRootHOC.js +1 -1
- package/lib/module/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/handlers/FlingGestureHandler.js +10 -0
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
- package/lib/module/handlers/LongPressGestureHandler.js +10 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +106 -0
- package/lib/module/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/handlers/PinchGestureHandler.js +9 -0
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/module/handlers/RotationGestureHandler.js +9 -0
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/handlers/TapGestureHandler.js +10 -0
- package/lib/module/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/handlers/createHandler.js +41 -76
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +66 -0
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
- package/lib/module/handlers/gestures/GestureDetector.js +402 -0
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
- package/lib/module/handlers/gestures/eventReceiver.js +120 -0
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
- package/lib/module/handlers/gestures/flingGesture.js +24 -0
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
- package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
- package/lib/module/handlers/gestures/gesture.js +175 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -0
- package/lib/module/handlers/gestures/gestureComposition.js +79 -0
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
- package/lib/module/handlers/gestures/gestureObjects.js +67 -0
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
- package/lib/module/handlers/gestures/longPressGesture.js +24 -0
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
- package/lib/module/handlers/gestures/manualGesture.js +22 -0
- package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
- package/lib/module/handlers/gestures/nativeGesture.js +24 -0
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
- package/lib/module/handlers/gestures/panGesture.js +135 -0
- package/lib/module/handlers/gestures/panGesture.js.map +1 -0
- package/lib/module/handlers/gestures/pinchGesture.js +36 -0
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
- package/lib/module/handlers/gestures/rotationGesture.js +36 -0
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
- package/lib/module/handlers/gestures/tapGesture.js +49 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
- package/lib/module/handlers/handlersRegistry.js +16 -0
- package/lib/module/handlers/handlersRegistry.js.map +1 -0
- package/lib/module/index.js +22 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +5 -0
- package/lib/module/init.js.map +1 -0
- package/lib/module/mocks.js +31 -2
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/utils.js +8 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/Errors.js +1 -1
- package/lib/module/web/Errors.js.map +1 -1
- package/lib/module/web/GestureHandler.js +4 -6
- package/lib/module/web/GestureHandler.js.map +1 -1
- package/lib/module/web/NodeManager.js +8 -2
- package/lib/module/web/NodeManager.js.map +1 -1
- package/lib/typescript/EventType.d.ts +8 -0
- package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
- package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
- package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +50 -1
- package/lib/typescript/components/GestureButtons.d.ts +36 -0
- package/lib/typescript/components/GestureComponents.d.ts +8 -35
- package/lib/typescript/components/Swipeable.d.ts +73 -6
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
- package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
- package/lib/typescript/handlers/createHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
- package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +16 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts +97 -0
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
- package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
- package/lib/typescript/index.d.ts +29 -2
- package/lib/typescript/init.d.ts +1 -0
- package/lib/typescript/mocks.d.ts +21 -2
- package/lib/typescript/utils.d.ts +1 -0
- package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/web/GestureHandler.d.ts +0 -1
- package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
- package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
- package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
- package/package.json +8 -5
- package/src/EventType.ts +10 -0
- package/src/GestureHandlerRootView.android.tsx +9 -25
- package/src/GestureHandlerRootView.tsx +11 -2
- package/src/RNGestureHandlerModule.ts +5 -1
- package/src/RNGestureHandlerModule.web.ts +1 -0
- package/src/components/DrawerLayout.tsx +114 -41
- package/src/components/GestureButtons.tsx +45 -5
- package/src/components/GestureComponents.tsx +47 -41
- package/src/components/Swipeable.tsx +108 -21
- package/src/components/touchables/GenericTouchable.tsx +2 -1
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/handlers/FlingGestureHandler.ts +57 -0
- package/src/handlers/ForceTouchGestureHandler.ts +83 -0
- package/src/handlers/LongPressGestureHandler.ts +84 -0
- package/src/handlers/NativeViewGestureHandler.ts +31 -7
- package/src/handlers/PanGestureHandler.ts +321 -0
- package/src/handlers/PinchGestureHandler.ts +46 -0
- package/src/handlers/RotationGestureHandler.ts +46 -0
- package/src/handlers/TapGestureHandler.ts +90 -0
- package/src/handlers/createHandler.ts +54 -79
- package/src/handlers/gestureHandlerCommon.ts +185 -0
- package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
- package/src/handlers/gestures/GestureDetector.tsx +519 -0
- package/src/handlers/gestures/eventReceiver.ts +151 -0
- package/src/handlers/gestures/flingGesture.ts +27 -0
- package/src/handlers/gestures/forceTouchGesture.ts +74 -0
- package/src/handlers/gestures/gesture.ts +292 -0
- package/src/handlers/gestures/gestureComposition.ts +109 -0
- package/src/handlers/gestures/gestureObjects.ts +79 -0
- package/src/handlers/gestures/gestureStateManager.ts +60 -0
- package/src/handlers/gestures/longPressGesture.ts +27 -0
- package/src/handlers/gestures/manualGesture.ts +31 -0
- package/src/handlers/gestures/nativeGesture.ts +27 -0
- package/src/handlers/gestures/panGesture.ts +147 -0
- package/src/handlers/gestures/pinchGesture.ts +51 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
- package/src/handlers/gestures/rotationGesture.ts +51 -0
- package/src/handlers/gestures/tapGesture.ts +52 -0
- package/src/handlers/handlersRegistry.ts +22 -0
- package/src/index.ts +57 -17
- package/src/init.ts +5 -0
- package/src/mocks.ts +42 -2
- package/src/utils.ts +7 -0
- package/src/web/GestureHandler.ts +1 -2
- package/src/web/NodeManager.ts +5 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
- package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
- package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
- package/lib/commonjs/handlers/gestureHandlers.js +0 -236
- package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
- package/lib/module/handlers/gestureHandlers.js +0 -216
- package/lib/module/handlers/gestureHandlers.js.map +0 -1
- package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
- package/src/handlers/gestureHandlers.ts +0 -511
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.ReactPackage;
|
|
4
|
-
import com.facebook.react.bridge.NativeModule;
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
-
import com.facebook.react.common.MapBuilder;
|
|
7
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
8
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
9
|
-
import com.facebook.react.uimanager.ViewManager;
|
|
10
|
-
import com.facebook.react.views.view.ReactViewManager;
|
|
11
|
-
|
|
12
|
-
import java.util.Arrays;
|
|
13
|
-
import java.util.List;
|
|
14
|
-
import java.util.Map;
|
|
15
|
-
|
|
16
|
-
import androidx.annotation.Nullable;
|
|
17
|
-
|
|
18
|
-
public class RNGestureHandlerPackage implements ReactPackage {
|
|
19
|
-
|
|
20
|
-
@Override
|
|
21
|
-
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
22
|
-
return Arrays.<NativeModule>asList(new RNGestureHandlerModule(reactContext));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@Override
|
|
26
|
-
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
27
|
-
return Arrays.<ViewManager>asList(
|
|
28
|
-
new RNGestureHandlerRootViewManager(),
|
|
29
|
-
new RNGestureHandlerButtonViewManager());
|
|
30
|
-
}
|
|
31
|
-
}
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import android.util.SparseArray;
|
|
4
|
-
import android.view.View;
|
|
5
|
-
|
|
6
|
-
import com.facebook.react.bridge.UiThreadUtil;
|
|
7
|
-
import com.swmansion.gesturehandler.GestureHandler;
|
|
8
|
-
import com.swmansion.gesturehandler.GestureHandlerRegistry;
|
|
9
|
-
|
|
10
|
-
import java.util.ArrayList;
|
|
11
|
-
|
|
12
|
-
import androidx.annotation.Nullable;
|
|
13
|
-
|
|
14
|
-
public class RNGestureHandlerRegistry implements GestureHandlerRegistry {
|
|
15
|
-
|
|
16
|
-
private final SparseArray<GestureHandler> mHandlers = new SparseArray<>();
|
|
17
|
-
private final SparseArray<Integer> mAttachedTo = new SparseArray<>();
|
|
18
|
-
private final SparseArray<ArrayList<GestureHandler>> mHandlersForView = new SparseArray<>();
|
|
19
|
-
|
|
20
|
-
public synchronized void registerHandler(GestureHandler handler) {
|
|
21
|
-
mHandlers.put(handler.getTag(), handler);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public synchronized @Nullable GestureHandler getHandler(int handlerTag) {
|
|
25
|
-
return mHandlers.get(handlerTag);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public synchronized boolean attachHandlerToView(int handlerTag, int viewTag) {
|
|
29
|
-
GestureHandler handler = mHandlers.get(handlerTag);
|
|
30
|
-
if (handler != null) {
|
|
31
|
-
detachHandler(handler);
|
|
32
|
-
registerHandlerForViewWithTag(viewTag, handler);
|
|
33
|
-
return true;
|
|
34
|
-
} else {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
private synchronized void registerHandlerForViewWithTag(int viewTag, GestureHandler handler) {
|
|
40
|
-
if (mAttachedTo.get(handler.getTag()) != null) {
|
|
41
|
-
throw new IllegalStateException("Handler " + handler + " already attached");
|
|
42
|
-
}
|
|
43
|
-
mAttachedTo.put(handler.getTag(), viewTag);
|
|
44
|
-
ArrayList<GestureHandler> listToAdd = mHandlersForView.get(viewTag);
|
|
45
|
-
if (listToAdd == null) {
|
|
46
|
-
listToAdd = new ArrayList<>(1);
|
|
47
|
-
listToAdd.add(handler);
|
|
48
|
-
mHandlersForView.put(viewTag, listToAdd);
|
|
49
|
-
} else {
|
|
50
|
-
listToAdd.add(handler);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
private synchronized void detachHandler(final GestureHandler handler) {
|
|
55
|
-
Integer attachedToView = mAttachedTo.get(handler.getTag());
|
|
56
|
-
if (attachedToView != null) {
|
|
57
|
-
mAttachedTo.remove(handler.getTag());
|
|
58
|
-
ArrayList<GestureHandler> attachedHandlers = mHandlersForView.get(attachedToView);
|
|
59
|
-
if (attachedHandlers != null) {
|
|
60
|
-
attachedHandlers.remove(handler);
|
|
61
|
-
if (attachedHandlers.size() == 0) {
|
|
62
|
-
mHandlersForView.remove(attachedToView);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (handler.getView() != null) {
|
|
67
|
-
// Handler is in "prepared" state which means it is registered in the orchestrator and can
|
|
68
|
-
// receive touch events. This means that before we remove it from the registry we need to
|
|
69
|
-
// "cancel" it so that orchestrator does no longer keep a reference to it.
|
|
70
|
-
UiThreadUtil.runOnUiThread(new Runnable() {
|
|
71
|
-
@Override
|
|
72
|
-
public void run() {
|
|
73
|
-
handler.cancel();
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public synchronized void dropHandler(int handlerTag) {
|
|
80
|
-
GestureHandler handler = mHandlers.get(handlerTag);
|
|
81
|
-
if (handler != null) {
|
|
82
|
-
detachHandler(handler);
|
|
83
|
-
mHandlers.remove(handlerTag);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public synchronized void dropAllHandlers() {
|
|
88
|
-
mHandlers.clear();
|
|
89
|
-
mAttachedTo.clear();
|
|
90
|
-
mHandlersForView.clear();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
public synchronized ArrayList<GestureHandler> getHandlersForViewWithTag(int viewTag) {
|
|
94
|
-
return mHandlersForView.get(viewTag);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@Override
|
|
98
|
-
public synchronized ArrayList<GestureHandler> getHandlersForView(View view) {
|
|
99
|
-
return getHandlersForViewWithTag(view.getId());
|
|
100
|
-
}
|
|
101
|
-
}
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import android.os.SystemClock;
|
|
4
|
-
import android.util.Log;
|
|
5
|
-
import android.view.MotionEvent;
|
|
6
|
-
import android.view.ViewGroup;
|
|
7
|
-
import android.view.ViewParent;
|
|
8
|
-
|
|
9
|
-
import com.facebook.react.ReactRootView;
|
|
10
|
-
import com.facebook.react.bridge.ReactContext;
|
|
11
|
-
import com.facebook.react.bridge.UiThreadUtil;
|
|
12
|
-
import com.facebook.react.common.ReactConstants;
|
|
13
|
-
import com.facebook.react.views.modal.RNGHModalUtils;
|
|
14
|
-
import com.swmansion.gesturehandler.GestureHandler;
|
|
15
|
-
import com.swmansion.gesturehandler.GestureHandlerOrchestrator;
|
|
16
|
-
|
|
17
|
-
public class RNGestureHandlerRootHelper {
|
|
18
|
-
|
|
19
|
-
private static final float MIN_ALPHA_FOR_TOUCH = 0.1f;
|
|
20
|
-
|
|
21
|
-
private final ReactContext mContext;
|
|
22
|
-
private final GestureHandlerOrchestrator mOrchestrator;
|
|
23
|
-
private final GestureHandler mJSGestureHandler;
|
|
24
|
-
private final ViewGroup mRootView;
|
|
25
|
-
|
|
26
|
-
private boolean mShouldIntercept = false;
|
|
27
|
-
private boolean mPassingTouch = false;
|
|
28
|
-
|
|
29
|
-
private static ViewGroup findRootViewTag(ViewGroup viewGroup) {
|
|
30
|
-
UiThreadUtil.assertOnUiThread();
|
|
31
|
-
ViewParent parent = viewGroup;
|
|
32
|
-
while (parent != null && !(parent instanceof ReactRootView || RNGHModalUtils.isDialogRootViewGroup(parent))) {
|
|
33
|
-
parent = parent.getParent();
|
|
34
|
-
}
|
|
35
|
-
if (parent == null) {
|
|
36
|
-
throw new IllegalStateException("View " + viewGroup + " has not been mounted under" +
|
|
37
|
-
" ReactRootView");
|
|
38
|
-
}
|
|
39
|
-
return (ViewGroup) parent;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public RNGestureHandlerRootHelper(ReactContext context, ViewGroup wrappedView) {
|
|
43
|
-
UiThreadUtil.assertOnUiThread();
|
|
44
|
-
int wrappedViewTag = wrappedView.getId();
|
|
45
|
-
if (wrappedViewTag < 1) {
|
|
46
|
-
throw new IllegalStateException("Expect view tag to be set for " + wrappedView);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
RNGestureHandlerModule module = context.getNativeModule(RNGestureHandlerModule.class);
|
|
50
|
-
RNGestureHandlerRegistry registry = module.getRegistry();
|
|
51
|
-
|
|
52
|
-
mRootView = findRootViewTag(wrappedView);
|
|
53
|
-
|
|
54
|
-
Log.i(
|
|
55
|
-
ReactConstants.TAG,
|
|
56
|
-
"[GESTURE HANDLER] Initialize gesture handler for root view " + mRootView);
|
|
57
|
-
|
|
58
|
-
mContext = context;
|
|
59
|
-
mOrchestrator = new GestureHandlerOrchestrator(
|
|
60
|
-
wrappedView, registry, new RNViewConfigurationHelper());
|
|
61
|
-
mOrchestrator.setMinimumAlphaForTraversal(MIN_ALPHA_FOR_TOUCH);
|
|
62
|
-
|
|
63
|
-
mJSGestureHandler = new RootViewGestureHandler();
|
|
64
|
-
mJSGestureHandler.setTag(-wrappedViewTag);
|
|
65
|
-
registry.registerHandler(mJSGestureHandler);
|
|
66
|
-
registry.attachHandlerToView(mJSGestureHandler.getTag(), wrappedViewTag);
|
|
67
|
-
|
|
68
|
-
module.registerRootHelper(this);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public void tearDown() {
|
|
72
|
-
Log.i(
|
|
73
|
-
ReactConstants.TAG,
|
|
74
|
-
"[GESTURE HANDLER] Tearing down gesture handler registered for root view " + mRootView);
|
|
75
|
-
RNGestureHandlerModule module = mContext.getNativeModule(RNGestureHandlerModule.class);
|
|
76
|
-
module.getRegistry().dropHandler(mJSGestureHandler.getTag());
|
|
77
|
-
module.unregisterRootHelper(this);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
public ViewGroup getRootView() {
|
|
81
|
-
return mRootView;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
private class RootViewGestureHandler extends GestureHandler {
|
|
85
|
-
@Override
|
|
86
|
-
protected void onHandle(MotionEvent event) {
|
|
87
|
-
int currentState = getState();
|
|
88
|
-
if (currentState == STATE_UNDETERMINED) {
|
|
89
|
-
begin();
|
|
90
|
-
mShouldIntercept = false;
|
|
91
|
-
}
|
|
92
|
-
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
|
|
93
|
-
end();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@Override
|
|
98
|
-
protected void onCancel() {
|
|
99
|
-
mShouldIntercept = true;
|
|
100
|
-
long time = SystemClock.uptimeMillis();
|
|
101
|
-
MotionEvent event = MotionEvent.obtain(time, time, MotionEvent.ACTION_CANCEL, 0, 0, 0);
|
|
102
|
-
event.setAction(MotionEvent.ACTION_CANCEL);
|
|
103
|
-
if (mRootView instanceof ReactRootView) {
|
|
104
|
-
((ReactRootView) mRootView).onChildStartedNativeGesture(event);
|
|
105
|
-
} else {
|
|
106
|
-
RNGHModalUtils.dialogRootViewGroupOnChildStartedNativeGesture(mRootView, event);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
|
112
|
-
// If this method gets called it means that some native view is attempting to grab lock for
|
|
113
|
-
// touch event delivery. In that case we cancel all gesture recognizers
|
|
114
|
-
if (mOrchestrator != null && !mPassingTouch) {
|
|
115
|
-
// if we are in the process of delivering touch events via GH orchestrator, we don't want to
|
|
116
|
-
// treat it as a native gesture capturing the lock
|
|
117
|
-
tryCancelAllHandlers();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
public boolean dispatchTouchEvent(MotionEvent ev) {
|
|
122
|
-
// We mark `mPassingTouch` before we get into `mOrchestrator.onTouchEvent` so that we can tell
|
|
123
|
-
// if `requestDisallow` has been called as a result of a normal gesture handling process or
|
|
124
|
-
// as a result of one of the gesture handlers activating
|
|
125
|
-
mPassingTouch = true;
|
|
126
|
-
mOrchestrator.onTouchEvent(ev);
|
|
127
|
-
mPassingTouch = false;
|
|
128
|
-
|
|
129
|
-
return mShouldIntercept;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
private void tryCancelAllHandlers() {
|
|
133
|
-
// In order to cancel handlers we activate handler that is hooked to the root view
|
|
134
|
-
if (mJSGestureHandler != null && mJSGestureHandler.getState() == GestureHandler.STATE_BEGAN) {
|
|
135
|
-
// Try activate main JS handler
|
|
136
|
-
mJSGestureHandler.activate();
|
|
137
|
-
mJSGestureHandler.end();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/*package*/ void handleSetJSResponder(final int viewTag, final boolean blockNativeResponder) {
|
|
142
|
-
if (blockNativeResponder) {
|
|
143
|
-
UiThreadUtil.runOnUiThread(new Runnable() {
|
|
144
|
-
@Override
|
|
145
|
-
public void run() {
|
|
146
|
-
tryCancelAllHandlers();
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import android.util.Log;
|
|
4
|
-
import android.content.Context;
|
|
5
|
-
import android.view.MotionEvent;
|
|
6
|
-
import android.view.ViewGroup;
|
|
7
|
-
import android.view.ViewParent;
|
|
8
|
-
|
|
9
|
-
import com.facebook.infer.annotation.Assertions;
|
|
10
|
-
import com.facebook.react.bridge.ReactContext;
|
|
11
|
-
import com.facebook.react.bridge.UiThreadUtil;
|
|
12
|
-
import com.facebook.react.common.ReactConstants;
|
|
13
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
14
|
-
|
|
15
|
-
import androidx.annotation.Nullable;
|
|
16
|
-
|
|
17
|
-
public class RNGestureHandlerRootView extends ReactViewGroup {
|
|
18
|
-
|
|
19
|
-
private static boolean hasGestureHandlerEnabledRootView(ViewGroup viewGroup) {
|
|
20
|
-
UiThreadUtil.assertOnUiThread();
|
|
21
|
-
ViewParent parent = viewGroup.getParent();
|
|
22
|
-
while (parent != null) {
|
|
23
|
-
if (parent instanceof RNGestureHandlerEnabledRootView || parent instanceof RNGestureHandlerRootView) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
parent = parent.getParent();
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
private boolean mEnabled;
|
|
32
|
-
private @Nullable RNGestureHandlerRootHelper mRootHelper;
|
|
33
|
-
|
|
34
|
-
public RNGestureHandlerRootView(Context context) {
|
|
35
|
-
super(context);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@Override
|
|
39
|
-
protected void onAttachedToWindow() {
|
|
40
|
-
super.onAttachedToWindow();
|
|
41
|
-
|
|
42
|
-
mEnabled = !hasGestureHandlerEnabledRootView(this);
|
|
43
|
-
|
|
44
|
-
if (!mEnabled) {
|
|
45
|
-
Log.i(
|
|
46
|
-
ReactConstants.TAG,
|
|
47
|
-
"[GESTURE HANDLER] Gesture handler is already enabled for a parent view");
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (mEnabled && mRootHelper == null) {
|
|
51
|
-
mRootHelper = new RNGestureHandlerRootHelper((ReactContext) getContext(), this);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public void tearDown() {
|
|
56
|
-
if (mRootHelper != null) {
|
|
57
|
-
mRootHelper.tearDown();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@Override
|
|
62
|
-
public boolean dispatchTouchEvent(MotionEvent ev) {
|
|
63
|
-
if (mEnabled && Assertions.assertNotNull(mRootHelper).dispatchTouchEvent(ev)) {
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
return super.dispatchTouchEvent(ev);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@Override
|
|
70
|
-
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
|
71
|
-
if (mEnabled) {
|
|
72
|
-
Assertions.assertNotNull(mRootHelper).requestDisallowInterceptTouchEvent(disallowIntercept);
|
|
73
|
-
}
|
|
74
|
-
super.requestDisallowInterceptTouchEvent(disallowIntercept);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.common.MapBuilder;
|
|
4
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
5
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
6
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
7
|
-
|
|
8
|
-
import java.util.Map;
|
|
9
|
-
|
|
10
|
-
import androidx.annotation.Nullable;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* React native's view manager used for creating instances of {@link }RNGestureHandlerRootView}. It
|
|
14
|
-
* is being used by projects using react-native-navigation where for each screen new root view need
|
|
15
|
-
* to be provided.
|
|
16
|
-
*/
|
|
17
|
-
@ReactModule(name = RNGestureHandlerRootViewManager.REACT_CLASS)
|
|
18
|
-
public class RNGestureHandlerRootViewManager extends ViewGroupManager<RNGestureHandlerRootView> {
|
|
19
|
-
|
|
20
|
-
public static final String REACT_CLASS = "GestureHandlerRootView";
|
|
21
|
-
|
|
22
|
-
@Override
|
|
23
|
-
public String getName() {
|
|
24
|
-
return REACT_CLASS;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@Override
|
|
28
|
-
protected RNGestureHandlerRootView createViewInstance(ThemedReactContext reactContext) {
|
|
29
|
-
return new RNGestureHandlerRootView(reactContext);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@Override
|
|
33
|
-
public void onDropViewInstance(RNGestureHandlerRootView view) {
|
|
34
|
-
view.tearDown();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* The following event configuration is necessary even if you are not using
|
|
39
|
-
* GestureHandlerRootView component directly.
|
|
40
|
-
*/
|
|
41
|
-
@Override
|
|
42
|
-
public @Nullable Map getExportedCustomDirectEventTypeConstants() {
|
|
43
|
-
return MapBuilder.of(
|
|
44
|
-
RNGestureHandlerEvent.EVENT_NAME,
|
|
45
|
-
MapBuilder.of("registrationName", RNGestureHandlerEvent.EVENT_NAME),
|
|
46
|
-
RNGestureHandlerStateChangeEvent.EVENT_NAME,
|
|
47
|
-
MapBuilder.of("registrationName", RNGestureHandlerStateChangeEvent.EVENT_NAME));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import androidx.core.util.Pools;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.Arguments;
|
|
6
|
-
import com.facebook.react.bridge.WritableMap;
|
|
7
|
-
import com.facebook.react.uimanager.events.Event;
|
|
8
|
-
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
9
|
-
import com.swmansion.gesturehandler.GestureHandler;
|
|
10
|
-
|
|
11
|
-
import androidx.annotation.Nullable;
|
|
12
|
-
|
|
13
|
-
public class RNGestureHandlerStateChangeEvent extends Event<RNGestureHandlerStateChangeEvent>{
|
|
14
|
-
|
|
15
|
-
public static final String EVENT_NAME = "onGestureHandlerStateChange";
|
|
16
|
-
|
|
17
|
-
private static final int TOUCH_EVENTS_POOL_SIZE = 7; // magic
|
|
18
|
-
|
|
19
|
-
private static final Pools.SynchronizedPool<RNGestureHandlerStateChangeEvent> EVENTS_POOL =
|
|
20
|
-
new Pools.SynchronizedPool<>(TOUCH_EVENTS_POOL_SIZE);
|
|
21
|
-
|
|
22
|
-
public static RNGestureHandlerStateChangeEvent obtain(
|
|
23
|
-
GestureHandler handler,
|
|
24
|
-
int newState,
|
|
25
|
-
int oldState,
|
|
26
|
-
@Nullable RNGestureHandlerEventDataExtractor dataExtractor) {
|
|
27
|
-
RNGestureHandlerStateChangeEvent event = EVENTS_POOL.acquire();
|
|
28
|
-
if (event == null) {
|
|
29
|
-
event = new RNGestureHandlerStateChangeEvent();
|
|
30
|
-
}
|
|
31
|
-
event.init(handler, newState, oldState, dataExtractor);
|
|
32
|
-
return event;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
private WritableMap mExtraData;
|
|
36
|
-
|
|
37
|
-
private RNGestureHandlerStateChangeEvent() {
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private void init(
|
|
41
|
-
GestureHandler handler,
|
|
42
|
-
int newState,
|
|
43
|
-
int oldState,
|
|
44
|
-
@Nullable RNGestureHandlerEventDataExtractor dataExtractor) {
|
|
45
|
-
super.init(handler.getView().getId());
|
|
46
|
-
mExtraData = Arguments.createMap();
|
|
47
|
-
if (dataExtractor != null) {
|
|
48
|
-
dataExtractor.extractEventData(handler, mExtraData);
|
|
49
|
-
}
|
|
50
|
-
mExtraData.putInt("handlerTag", handler.getTag());
|
|
51
|
-
mExtraData.putInt("state", newState);
|
|
52
|
-
mExtraData.putInt("oldState", oldState);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@Override
|
|
56
|
-
public void onDispose() {
|
|
57
|
-
mExtraData = null;
|
|
58
|
-
EVENTS_POOL.release(this);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@Override
|
|
62
|
-
public String getEventName() {
|
|
63
|
-
return EVENT_NAME;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@Override
|
|
67
|
-
public boolean canCoalesce() {
|
|
68
|
-
// TODO: coalescing
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
@Override
|
|
73
|
-
public short getCoalescingKey() {
|
|
74
|
-
// TODO: coalescing
|
|
75
|
-
return 0;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@Override
|
|
79
|
-
public void dispatch(RCTEventEmitter rctEventEmitter) {
|
|
80
|
-
rctEventEmitter.receiveEvent(getViewTag(), EVENT_NAME, mExtraData);
|
|
81
|
-
}
|
|
82
|
-
}
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import android.os.Build;
|
|
4
|
-
import android.view.View;
|
|
5
|
-
import android.view.ViewGroup;
|
|
6
|
-
|
|
7
|
-
import com.facebook.react.uimanager.PointerEvents;
|
|
8
|
-
import com.facebook.react.uimanager.ReactPointerEventsView;
|
|
9
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
10
|
-
import com.swmansion.gesturehandler.PointerEventsConfig;
|
|
11
|
-
import com.swmansion.gesturehandler.ViewConfigurationHelper;
|
|
12
|
-
|
|
13
|
-
public class RNViewConfigurationHelper implements ViewConfigurationHelper {
|
|
14
|
-
|
|
15
|
-
@Override
|
|
16
|
-
public PointerEventsConfig getPointerEventsConfigForView(View view) {
|
|
17
|
-
PointerEvents pointerEvents;
|
|
18
|
-
pointerEvents = view instanceof ReactPointerEventsView ?
|
|
19
|
-
((ReactPointerEventsView) view).getPointerEvents() :
|
|
20
|
-
PointerEvents.AUTO;
|
|
21
|
-
|
|
22
|
-
// Views that are disabled should never be the target of pointer events. However, their children
|
|
23
|
-
// can be because some views (SwipeRefreshLayout) use enabled but still have children that can
|
|
24
|
-
// be valid targets.
|
|
25
|
-
if (!view.isEnabled()) {
|
|
26
|
-
if (pointerEvents == PointerEvents.AUTO) {
|
|
27
|
-
return PointerEventsConfig.BOX_NONE;
|
|
28
|
-
} else if (pointerEvents == PointerEvents.BOX_ONLY) {
|
|
29
|
-
return PointerEventsConfig.NONE;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
switch (pointerEvents) {
|
|
34
|
-
case BOX_ONLY: return PointerEventsConfig.BOX_ONLY;
|
|
35
|
-
case BOX_NONE: return PointerEventsConfig.BOX_NONE;
|
|
36
|
-
case NONE: return PointerEventsConfig.NONE;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return PointerEventsConfig.AUTO;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@Override
|
|
43
|
-
public View getChildInDrawingOrderAtIndex(ViewGroup parent, int index) {
|
|
44
|
-
if (parent instanceof ReactViewGroup) {
|
|
45
|
-
return parent.getChildAt(((ReactViewGroup) parent).getZIndexMappedChildIndex(index));
|
|
46
|
-
}
|
|
47
|
-
return parent.getChildAt(index);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@Override
|
|
51
|
-
public boolean isViewClippingChildren(ViewGroup view) {
|
|
52
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2 && !view.getClipChildren()) {
|
|
53
|
-
if (view instanceof ReactViewGroup) {
|
|
54
|
-
String overflow = ((ReactViewGroup) view).getOverflow();
|
|
55
|
-
return "hidden".equals(overflow);
|
|
56
|
-
}
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
}
|