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/RNGestureHandlerModule.java
DELETED
|
@@ -1,731 +0,0 @@
|
|
|
1
|
-
package com.swmansion.gesturehandler.react;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import android.view.MotionEvent;
|
|
5
|
-
import android.view.View;
|
|
6
|
-
import android.view.ViewGroup;
|
|
7
|
-
|
|
8
|
-
import com.facebook.react.ReactRootView;
|
|
9
|
-
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
|
|
10
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
12
|
-
import com.facebook.react.bridge.ReactMethod;
|
|
13
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
14
|
-
import com.facebook.react.bridge.ReadableType;
|
|
15
|
-
import com.facebook.react.bridge.WritableMap;
|
|
16
|
-
import com.facebook.react.common.MapBuilder;
|
|
17
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
18
|
-
import com.facebook.react.uimanager.NativeViewHierarchyManager;
|
|
19
|
-
import com.facebook.react.uimanager.PixelUtil;
|
|
20
|
-
import com.facebook.react.uimanager.UIBlock;
|
|
21
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
22
|
-
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
23
|
-
import com.swmansion.gesturehandler.FlingGestureHandler;
|
|
24
|
-
import com.swmansion.gesturehandler.GestureHandler;
|
|
25
|
-
import com.swmansion.gesturehandler.LongPressGestureHandler;
|
|
26
|
-
import com.swmansion.gesturehandler.NativeViewGestureHandler;
|
|
27
|
-
import com.swmansion.gesturehandler.OnTouchEventListener;
|
|
28
|
-
import com.swmansion.gesturehandler.PanGestureHandler;
|
|
29
|
-
import com.swmansion.gesturehandler.PinchGestureHandler;
|
|
30
|
-
import com.swmansion.gesturehandler.RotationGestureHandler;
|
|
31
|
-
import com.swmansion.gesturehandler.TapGestureHandler;
|
|
32
|
-
|
|
33
|
-
import java.util.ArrayList;
|
|
34
|
-
import java.util.List;
|
|
35
|
-
import java.util.Map;
|
|
36
|
-
|
|
37
|
-
import androidx.annotation.Nullable;
|
|
38
|
-
|
|
39
|
-
import static com.swmansion.gesturehandler.GestureHandler.HIT_SLOP_NONE;
|
|
40
|
-
|
|
41
|
-
@ReactModule(name=RNGestureHandlerModule.MODULE_NAME)
|
|
42
|
-
public class RNGestureHandlerModule extends ReactContextBaseJavaModule {
|
|
43
|
-
|
|
44
|
-
public static final String MODULE_NAME = "RNGestureHandlerModule";
|
|
45
|
-
|
|
46
|
-
private static final String KEY_SHOULD_CANCEL_WHEN_OUTSIDE = "shouldCancelWhenOutside";
|
|
47
|
-
private static final String KEY_ENABLED = "enabled";
|
|
48
|
-
private static final String KEY_HIT_SLOP = "hitSlop";
|
|
49
|
-
private static final String KEY_HIT_SLOP_LEFT = "left";
|
|
50
|
-
private static final String KEY_HIT_SLOP_TOP = "top";
|
|
51
|
-
private static final String KEY_HIT_SLOP_RIGHT = "right";
|
|
52
|
-
private static final String KEY_HIT_SLOP_BOTTOM = "bottom";
|
|
53
|
-
private static final String KEY_HIT_SLOP_VERTICAL = "vertical";
|
|
54
|
-
private static final String KEY_HIT_SLOP_HORIZONTAL = "horizontal";
|
|
55
|
-
private static final String KEY_HIT_SLOP_WIDTH = "width";
|
|
56
|
-
private static final String KEY_HIT_SLOP_HEIGHT = "height";
|
|
57
|
-
private static final String KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START = "shouldActivateOnStart";
|
|
58
|
-
private static final String KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION = "disallowInterruption";
|
|
59
|
-
private static final String KEY_TAP_NUMBER_OF_TAPS = "numberOfTaps";
|
|
60
|
-
private static final String KEY_TAP_MAX_DURATION_MS = "maxDurationMs";
|
|
61
|
-
private static final String KEY_TAP_MAX_DELAY_MS = "maxDelayMs";
|
|
62
|
-
private static final String KEY_TAP_MAX_DELTA_X = "maxDeltaX";
|
|
63
|
-
private static final String KEY_TAP_MAX_DELTA_Y = "maxDeltaY";
|
|
64
|
-
private static final String KEY_TAP_MAX_DIST = "maxDist";
|
|
65
|
-
private static final String KEY_TAP_MIN_POINTERS = "minPointers";
|
|
66
|
-
private static final String KEY_LONG_PRESS_MIN_DURATION_MS = "minDurationMs";
|
|
67
|
-
private static final String KEY_LONG_PRESS_MAX_DIST = "maxDist";
|
|
68
|
-
private static final String KEY_PAN_ACTIVE_OFFSET_X_START = "activeOffsetXStart";
|
|
69
|
-
private static final String KEY_PAN_ACTIVE_OFFSET_X_END = "activeOffsetXEnd";
|
|
70
|
-
private static final String KEY_PAN_FAIL_OFFSET_RANGE_X_START = "failOffsetXStart";
|
|
71
|
-
private static final String KEY_PAN_FAIL_OFFSET_RANGE_X_END = "failOffsetXEnd";
|
|
72
|
-
private static final String KEY_PAN_ACTIVE_OFFSET_Y_START = "activeOffsetYStart";
|
|
73
|
-
private static final String KEY_PAN_ACTIVE_OFFSET_Y_END = "activeOffsetYEnd";
|
|
74
|
-
private static final String KEY_PAN_FAIL_OFFSET_RANGE_Y_START = "failOffsetYStart";
|
|
75
|
-
private static final String KEY_PAN_FAIL_OFFSET_RANGE_Y_END = "failOffsetYEnd";
|
|
76
|
-
private static final String KEY_PAN_MIN_DIST = "minDist";
|
|
77
|
-
private static final String KEY_PAN_MIN_VELOCITY = "minVelocity";
|
|
78
|
-
private static final String KEY_PAN_MIN_VELOCITY_X = "minVelocityX";
|
|
79
|
-
private static final String KEY_PAN_MIN_VELOCITY_Y = "minVelocityY";
|
|
80
|
-
private static final String KEY_PAN_MIN_POINTERS = "minPointers";
|
|
81
|
-
private static final String KEY_PAN_MAX_POINTERS = "maxPointers";
|
|
82
|
-
private static final String KEY_PAN_AVG_TOUCHES = "avgTouches";
|
|
83
|
-
private static final String KEY_NUMBER_OF_POINTERS = "numberOfPointers";
|
|
84
|
-
private static final String KEY_DIRECTION= "direction";
|
|
85
|
-
|
|
86
|
-
private abstract static class HandlerFactory<T extends GestureHandler>
|
|
87
|
-
implements RNGestureHandlerEventDataExtractor<T> {
|
|
88
|
-
|
|
89
|
-
public abstract Class<T> getType();
|
|
90
|
-
|
|
91
|
-
public abstract String getName();
|
|
92
|
-
|
|
93
|
-
public abstract T create(Context context);
|
|
94
|
-
|
|
95
|
-
public void configure(T handler, ReadableMap config) {
|
|
96
|
-
if (config.hasKey(KEY_SHOULD_CANCEL_WHEN_OUTSIDE)) {
|
|
97
|
-
handler.setShouldCancelWhenOutside(config.getBoolean(KEY_SHOULD_CANCEL_WHEN_OUTSIDE));
|
|
98
|
-
}
|
|
99
|
-
if (config.hasKey(KEY_ENABLED)) {
|
|
100
|
-
handler.setEnabled(config.getBoolean(KEY_ENABLED));
|
|
101
|
-
}
|
|
102
|
-
if (config.hasKey(KEY_HIT_SLOP)) {
|
|
103
|
-
handleHitSlopProperty(handler, config);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
@Override
|
|
108
|
-
public void extractEventData(T handler, WritableMap eventData) {
|
|
109
|
-
eventData.putDouble("numberOfPointers", handler.getNumberOfPointers());
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
private static class NativeViewGestureHandlerFactory extends
|
|
114
|
-
HandlerFactory<NativeViewGestureHandler> {
|
|
115
|
-
@Override
|
|
116
|
-
public Class<NativeViewGestureHandler> getType() {
|
|
117
|
-
return NativeViewGestureHandler.class;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
@Override
|
|
121
|
-
public String getName() {
|
|
122
|
-
return "NativeViewGestureHandler";
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
@Override
|
|
126
|
-
public NativeViewGestureHandler create(Context context) {
|
|
127
|
-
return new NativeViewGestureHandler();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
@Override
|
|
131
|
-
public void configure(NativeViewGestureHandler handler, ReadableMap config) {
|
|
132
|
-
super.configure(handler, config);
|
|
133
|
-
if (config.hasKey(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)) {
|
|
134
|
-
handler.setShouldActivateOnStart(
|
|
135
|
-
config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START));
|
|
136
|
-
}
|
|
137
|
-
if (config.hasKey(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION)) {
|
|
138
|
-
handler.setDisallowInterruption(config.getBoolean(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
@Override
|
|
143
|
-
public void extractEventData(NativeViewGestureHandler handler, WritableMap eventData) {
|
|
144
|
-
super.extractEventData(handler, eventData);
|
|
145
|
-
eventData.putBoolean("pointerInside", handler.isWithinBounds());
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
private static class TapGestureHandlerFactory extends HandlerFactory<TapGestureHandler> {
|
|
150
|
-
@Override
|
|
151
|
-
public Class<TapGestureHandler> getType() {
|
|
152
|
-
return TapGestureHandler.class;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
@Override
|
|
156
|
-
public String getName() {
|
|
157
|
-
return "TapGestureHandler";
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
@Override
|
|
161
|
-
public TapGestureHandler create(Context context) {
|
|
162
|
-
return new TapGestureHandler();
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
@Override
|
|
166
|
-
public void configure(TapGestureHandler handler, ReadableMap config) {
|
|
167
|
-
super.configure(handler, config);
|
|
168
|
-
if (config.hasKey(KEY_TAP_NUMBER_OF_TAPS)) {
|
|
169
|
-
handler.setNumberOfTaps(config.getInt(KEY_TAP_NUMBER_OF_TAPS));
|
|
170
|
-
}
|
|
171
|
-
if (config.hasKey(KEY_TAP_MAX_DURATION_MS)) {
|
|
172
|
-
handler.setMaxDurationMs(config.getInt(KEY_TAP_MAX_DURATION_MS));
|
|
173
|
-
}
|
|
174
|
-
if (config.hasKey(KEY_TAP_MAX_DELAY_MS)) {
|
|
175
|
-
handler.setMaxDelayMs(config.getInt(KEY_TAP_MAX_DELAY_MS));
|
|
176
|
-
}
|
|
177
|
-
if (config.hasKey(KEY_TAP_MAX_DELTA_X)) {
|
|
178
|
-
handler.setMaxDx(PixelUtil.toPixelFromDIP(config.getDouble(KEY_TAP_MAX_DELTA_X)));
|
|
179
|
-
}
|
|
180
|
-
if (config.hasKey(KEY_TAP_MAX_DELTA_Y)) {
|
|
181
|
-
handler.setMaxDy(PixelUtil.toPixelFromDIP(config.getDouble(KEY_TAP_MAX_DELTA_Y)));
|
|
182
|
-
}
|
|
183
|
-
if (config.hasKey(KEY_TAP_MAX_DIST)) {
|
|
184
|
-
handler.setMaxDist(PixelUtil.toPixelFromDIP(config.getDouble(KEY_TAP_MAX_DIST)));
|
|
185
|
-
}
|
|
186
|
-
if (config.hasKey(KEY_TAP_MIN_POINTERS)) {
|
|
187
|
-
handler.setMinNumberOfPointers(config.getInt(KEY_TAP_MIN_POINTERS));
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
@Override
|
|
192
|
-
public void extractEventData(TapGestureHandler handler, WritableMap eventData) {
|
|
193
|
-
super.extractEventData(handler, eventData);
|
|
194
|
-
eventData.putDouble("x", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionX()));
|
|
195
|
-
eventData.putDouble("y", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionY()));
|
|
196
|
-
eventData.putDouble("absoluteX", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionX()));
|
|
197
|
-
eventData.putDouble("absoluteY", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionY()));
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
private static class LongPressGestureHandlerFactory extends
|
|
202
|
-
HandlerFactory<LongPressGestureHandler> {
|
|
203
|
-
@Override
|
|
204
|
-
public Class<LongPressGestureHandler> getType() {
|
|
205
|
-
return LongPressGestureHandler.class;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
@Override
|
|
209
|
-
public String getName() {
|
|
210
|
-
return "LongPressGestureHandler";
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
@Override
|
|
214
|
-
public LongPressGestureHandler create(Context context) {
|
|
215
|
-
return new LongPressGestureHandler(context);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
@Override
|
|
219
|
-
public void configure(LongPressGestureHandler handler, ReadableMap config) {
|
|
220
|
-
super.configure(handler, config);
|
|
221
|
-
if (config.hasKey(KEY_LONG_PRESS_MIN_DURATION_MS)) {
|
|
222
|
-
handler.setMinDurationMs(config.getInt(KEY_LONG_PRESS_MIN_DURATION_MS));
|
|
223
|
-
}
|
|
224
|
-
if (config.hasKey(KEY_LONG_PRESS_MAX_DIST)) {
|
|
225
|
-
handler.setMaxDist(PixelUtil.toPixelFromDIP(config.getDouble(KEY_LONG_PRESS_MAX_DIST)));
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
@Override
|
|
230
|
-
public void extractEventData(LongPressGestureHandler handler, WritableMap eventData) {
|
|
231
|
-
super.extractEventData(handler, eventData);
|
|
232
|
-
eventData.putDouble("x", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionX()));
|
|
233
|
-
eventData.putDouble("y", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionY()));
|
|
234
|
-
eventData.putDouble("absoluteX", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionX()));
|
|
235
|
-
eventData.putDouble("absoluteY", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionY()));
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
private static class PanGestureHandlerFactory extends HandlerFactory<PanGestureHandler> {
|
|
240
|
-
@Override
|
|
241
|
-
public Class<PanGestureHandler> getType() {
|
|
242
|
-
return PanGestureHandler.class;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
@Override
|
|
246
|
-
public String getName() {
|
|
247
|
-
return "PanGestureHandler";
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
@Override
|
|
251
|
-
public PanGestureHandler create(Context context) {
|
|
252
|
-
return new PanGestureHandler(context);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
@Override
|
|
256
|
-
public void configure(PanGestureHandler handler, ReadableMap config) {
|
|
257
|
-
super.configure(handler, config);
|
|
258
|
-
boolean hasCustomActivationCriteria = false;
|
|
259
|
-
if(config.hasKey(KEY_PAN_ACTIVE_OFFSET_X_START)) {
|
|
260
|
-
handler.setActiveOffsetXStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_X_START)));
|
|
261
|
-
hasCustomActivationCriteria = true;
|
|
262
|
-
}
|
|
263
|
-
if(config.hasKey(KEY_PAN_ACTIVE_OFFSET_X_END)) {
|
|
264
|
-
handler.setActiveOffsetXEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_X_END)));
|
|
265
|
-
hasCustomActivationCriteria = true;
|
|
266
|
-
}
|
|
267
|
-
if(config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_X_START)) {
|
|
268
|
-
handler.setFailOffsetXStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_X_START)));
|
|
269
|
-
hasCustomActivationCriteria = true;
|
|
270
|
-
}
|
|
271
|
-
if(config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_X_END)) {
|
|
272
|
-
handler.setFailOffsetXEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_X_END)));
|
|
273
|
-
hasCustomActivationCriteria = true;
|
|
274
|
-
}
|
|
275
|
-
if(config.hasKey(KEY_PAN_ACTIVE_OFFSET_Y_START)) {
|
|
276
|
-
handler.setActiveOffsetYStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_Y_START)));
|
|
277
|
-
hasCustomActivationCriteria = true;
|
|
278
|
-
}
|
|
279
|
-
if(config.hasKey(KEY_PAN_ACTIVE_OFFSET_Y_END)) {
|
|
280
|
-
handler.setActiveOffsetYEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_Y_END)));
|
|
281
|
-
hasCustomActivationCriteria = true;
|
|
282
|
-
}
|
|
283
|
-
if(config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_Y_START)) {
|
|
284
|
-
handler.setFailOffsetYStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_Y_START)));
|
|
285
|
-
hasCustomActivationCriteria = true;
|
|
286
|
-
}
|
|
287
|
-
if(config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_Y_END)) {
|
|
288
|
-
handler.setFailOffsetYEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_Y_END)));
|
|
289
|
-
hasCustomActivationCriteria = true;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
if (config.hasKey(KEY_PAN_MIN_VELOCITY)) {
|
|
293
|
-
// This value is actually in DPs/ms, but we can use the same function as for converting
|
|
294
|
-
// from DPs to pixels as the unit we're converting is in the numerator
|
|
295
|
-
handler.setMinVelocity(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_VELOCITY)));
|
|
296
|
-
hasCustomActivationCriteria = true;
|
|
297
|
-
}
|
|
298
|
-
if (config.hasKey(KEY_PAN_MIN_VELOCITY_X)) {
|
|
299
|
-
handler.setMinVelocityX(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_VELOCITY_X)));
|
|
300
|
-
hasCustomActivationCriteria = true;
|
|
301
|
-
}
|
|
302
|
-
if (config.hasKey(KEY_PAN_MIN_VELOCITY_Y)) {
|
|
303
|
-
handler.setMinVelocityY(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_VELOCITY_Y)));
|
|
304
|
-
hasCustomActivationCriteria = true;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
// PanGestureHandler sets minDist by default, if there are custom criteria specified we want
|
|
308
|
-
// to reset that setting and use provided criteria instead.
|
|
309
|
-
if (config.hasKey(KEY_PAN_MIN_DIST)) {
|
|
310
|
-
handler.setMinDist(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_DIST)));
|
|
311
|
-
} else if (hasCustomActivationCriteria) {
|
|
312
|
-
handler.setMinDist(Float.MAX_VALUE);
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
if (config.hasKey(KEY_PAN_MIN_POINTERS)) {
|
|
316
|
-
handler.setMinPointers(config.getInt(KEY_PAN_MIN_POINTERS));
|
|
317
|
-
}
|
|
318
|
-
if (config.hasKey(KEY_PAN_MAX_POINTERS)) {
|
|
319
|
-
handler.setMaxPointers(config.getInt(KEY_PAN_MAX_POINTERS));
|
|
320
|
-
}
|
|
321
|
-
if (config.hasKey(KEY_PAN_AVG_TOUCHES)) {
|
|
322
|
-
handler.setAverageTouches(config.getBoolean(KEY_PAN_AVG_TOUCHES));
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
@Override
|
|
327
|
-
public void extractEventData(PanGestureHandler handler, WritableMap eventData) {
|
|
328
|
-
super.extractEventData(handler, eventData);
|
|
329
|
-
eventData.putDouble("x", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionX()));
|
|
330
|
-
eventData.putDouble("y", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionY()));
|
|
331
|
-
eventData.putDouble("absoluteX", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionX()));
|
|
332
|
-
eventData.putDouble("absoluteY", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionY()));
|
|
333
|
-
eventData.putDouble("translationX", PixelUtil.toDIPFromPixel(handler.getTranslationX()));
|
|
334
|
-
eventData.putDouble("translationY", PixelUtil.toDIPFromPixel(handler.getTranslationY()));
|
|
335
|
-
eventData.putDouble("velocityX", PixelUtil.toDIPFromPixel(handler.getVelocityX()));
|
|
336
|
-
eventData.putDouble("velocityY", PixelUtil.toDIPFromPixel(handler.getVelocityY()));
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
private static class PinchGestureHandlerFactory extends HandlerFactory<PinchGestureHandler> {
|
|
341
|
-
@Override
|
|
342
|
-
public Class<PinchGestureHandler> getType() {
|
|
343
|
-
return PinchGestureHandler.class;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
@Override
|
|
347
|
-
public String getName() {
|
|
348
|
-
return "PinchGestureHandler";
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
@Override
|
|
352
|
-
public PinchGestureHandler create(Context context) {
|
|
353
|
-
return new PinchGestureHandler();
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
@Override
|
|
357
|
-
public void extractEventData(PinchGestureHandler handler, WritableMap eventData) {
|
|
358
|
-
super.extractEventData(handler, eventData);
|
|
359
|
-
eventData.putDouble("scale", handler.getScale());
|
|
360
|
-
eventData.putDouble("focalX", PixelUtil.toDIPFromPixel(handler.getFocalPointX()));
|
|
361
|
-
eventData.putDouble("focalY", PixelUtil.toDIPFromPixel(handler.getFocalPointY()));
|
|
362
|
-
eventData.putDouble("velocity", handler.getVelocity());
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
private static class FlingGestureHandlerFactory extends HandlerFactory<FlingGestureHandler> {
|
|
367
|
-
@Override
|
|
368
|
-
public Class<FlingGestureHandler> getType() {
|
|
369
|
-
return FlingGestureHandler.class;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
@Override
|
|
373
|
-
public String getName() {
|
|
374
|
-
return "FlingGestureHandler";
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
@Override
|
|
378
|
-
public FlingGestureHandler create(Context context) {
|
|
379
|
-
return new FlingGestureHandler();
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
@Override
|
|
383
|
-
public void configure(FlingGestureHandler handler, ReadableMap config) {
|
|
384
|
-
super.configure(handler, config);
|
|
385
|
-
if (config.hasKey(KEY_NUMBER_OF_POINTERS)) {
|
|
386
|
-
handler.setNumberOfPointersRequired(config.getInt(KEY_NUMBER_OF_POINTERS));
|
|
387
|
-
}
|
|
388
|
-
if (config.hasKey(KEY_DIRECTION)) {
|
|
389
|
-
handler.setDirection(config.getInt(KEY_DIRECTION));
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
@Override
|
|
393
|
-
public void extractEventData(FlingGestureHandler handler, WritableMap eventData) {
|
|
394
|
-
super.extractEventData(handler, eventData);
|
|
395
|
-
eventData.putDouble("x", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionX()));
|
|
396
|
-
eventData.putDouble("y", PixelUtil.toDIPFromPixel(handler.getLastRelativePositionY()));
|
|
397
|
-
eventData.putDouble("absoluteX", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionX()));
|
|
398
|
-
eventData.putDouble("absoluteY", PixelUtil.toDIPFromPixel(handler.getLastAbsolutePositionY()));
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
private static class RotationGestureHandlerFactory extends HandlerFactory<RotationGestureHandler> {
|
|
403
|
-
@Override
|
|
404
|
-
public Class<RotationGestureHandler> getType() {
|
|
405
|
-
return RotationGestureHandler.class;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
@Override
|
|
409
|
-
public String getName() {
|
|
410
|
-
return "RotationGestureHandler";
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
@Override
|
|
414
|
-
public RotationGestureHandler create(Context context) {
|
|
415
|
-
return new RotationGestureHandler();
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
@Override
|
|
419
|
-
public void extractEventData(RotationGestureHandler handler, WritableMap eventData) {
|
|
420
|
-
super.extractEventData(handler, eventData);
|
|
421
|
-
eventData.putDouble("rotation", handler.getRotation());
|
|
422
|
-
eventData.putDouble("anchorX", PixelUtil.toDIPFromPixel(handler.getAnchorX()));
|
|
423
|
-
eventData.putDouble("anchorY", PixelUtil.toDIPFromPixel(handler.getAnchorY()));
|
|
424
|
-
eventData.putDouble("velocity", handler.getVelocity());
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
private OnTouchEventListener mEventListener = new OnTouchEventListener() {
|
|
429
|
-
@Override
|
|
430
|
-
public void onTouchEvent(GestureHandler handler, MotionEvent event) {
|
|
431
|
-
RNGestureHandlerModule.this.onTouchEvent(handler, event);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
@Override
|
|
435
|
-
public void onStateChange(GestureHandler handler, int newState, int oldState) {
|
|
436
|
-
RNGestureHandlerModule.this.onStateChange(handler, newState, oldState);
|
|
437
|
-
}
|
|
438
|
-
};
|
|
439
|
-
|
|
440
|
-
private HandlerFactory[] mHandlerFactories = new HandlerFactory[] {
|
|
441
|
-
new NativeViewGestureHandlerFactory(),
|
|
442
|
-
new TapGestureHandlerFactory(),
|
|
443
|
-
new LongPressGestureHandlerFactory(),
|
|
444
|
-
new PanGestureHandlerFactory(),
|
|
445
|
-
new PinchGestureHandlerFactory(),
|
|
446
|
-
new RotationGestureHandlerFactory(),
|
|
447
|
-
new FlingGestureHandlerFactory()
|
|
448
|
-
};
|
|
449
|
-
private final RNGestureHandlerRegistry mRegistry = new RNGestureHandlerRegistry();
|
|
450
|
-
|
|
451
|
-
private RNGestureHandlerInteractionManager mInteractionManager =
|
|
452
|
-
new RNGestureHandlerInteractionManager();
|
|
453
|
-
private List<RNGestureHandlerRootHelper> mRoots = new ArrayList<>();
|
|
454
|
-
private List<Integer> mEnqueuedRootViewInit = new ArrayList<>();
|
|
455
|
-
|
|
456
|
-
public RNGestureHandlerModule(ReactApplicationContext reactContext) {
|
|
457
|
-
super(reactContext);
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
@Override
|
|
461
|
-
public String getName() {
|
|
462
|
-
return MODULE_NAME;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
@ReactMethod
|
|
466
|
-
public void createGestureHandler(
|
|
467
|
-
String handlerName,
|
|
468
|
-
int handlerTag,
|
|
469
|
-
ReadableMap config) {
|
|
470
|
-
for (int i = 0; i < mHandlerFactories.length; i++) {
|
|
471
|
-
HandlerFactory handlerFactory = mHandlerFactories[i];
|
|
472
|
-
if (handlerFactory.getName().equals(handlerName)) {
|
|
473
|
-
GestureHandler handler = handlerFactory.create(getReactApplicationContext());
|
|
474
|
-
handler.setTag(handlerTag);
|
|
475
|
-
handler.setOnTouchEventListener(mEventListener);
|
|
476
|
-
mRegistry.registerHandler(handler);
|
|
477
|
-
mInteractionManager.configureInteractions(handler, config);
|
|
478
|
-
handlerFactory.configure(handler, config);
|
|
479
|
-
return;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
throw new JSApplicationIllegalArgumentException("Invalid handler name " + handlerName);
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
@ReactMethod
|
|
486
|
-
public void attachGestureHandler(int handlerTag, int viewTag) {
|
|
487
|
-
tryInitializeHandlerForReactRootView(viewTag);
|
|
488
|
-
if (!mRegistry.attachHandlerToView(handlerTag, viewTag)) {
|
|
489
|
-
throw new JSApplicationIllegalArgumentException(
|
|
490
|
-
"Handler with tag " + handlerTag + " does not exists");
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
@ReactMethod
|
|
495
|
-
public void updateGestureHandler(
|
|
496
|
-
int handlerTag,
|
|
497
|
-
ReadableMap config) {
|
|
498
|
-
GestureHandler handler = mRegistry.getHandler(handlerTag);
|
|
499
|
-
if (handler != null) {
|
|
500
|
-
HandlerFactory factory = findFactoryForHandler(handler);
|
|
501
|
-
if (factory != null) {
|
|
502
|
-
mInteractionManager.dropRelationsForHandlerWithTag(handlerTag);
|
|
503
|
-
mInteractionManager.configureInteractions(handler, config);
|
|
504
|
-
factory.configure(handler, config);
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
@ReactMethod
|
|
510
|
-
public void dropGestureHandler(int handlerTag) {
|
|
511
|
-
mInteractionManager.dropRelationsForHandlerWithTag(handlerTag);
|
|
512
|
-
mRegistry.dropHandler(handlerTag);
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
@ReactMethod
|
|
516
|
-
public void handleSetJSResponder(int viewTag, boolean blockNativeResponder) {
|
|
517
|
-
if (mRegistry != null) {
|
|
518
|
-
RNGestureHandlerRootHelper rootView = findRootHelperForViewAncestor(viewTag);
|
|
519
|
-
if (rootView != null) {
|
|
520
|
-
rootView.handleSetJSResponder(viewTag, blockNativeResponder);
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
@ReactMethod
|
|
526
|
-
public void handleClearJSResponder() {
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
@Override
|
|
530
|
-
public @Nullable Map getConstants() {
|
|
531
|
-
return MapBuilder.of("State", MapBuilder.of(
|
|
532
|
-
"UNDETERMINED", GestureHandler.STATE_UNDETERMINED,
|
|
533
|
-
"BEGAN", GestureHandler.STATE_BEGAN,
|
|
534
|
-
"ACTIVE", GestureHandler.STATE_ACTIVE,
|
|
535
|
-
"CANCELLED", GestureHandler.STATE_CANCELLED,
|
|
536
|
-
"FAILED", GestureHandler.STATE_FAILED,
|
|
537
|
-
"END", GestureHandler.STATE_END
|
|
538
|
-
), "Direction", MapBuilder.of(
|
|
539
|
-
"RIGHT", GestureHandler.DIRECTION_RIGHT,
|
|
540
|
-
"LEFT", GestureHandler.DIRECTION_LEFT,
|
|
541
|
-
"UP", GestureHandler.DIRECTION_UP,
|
|
542
|
-
"DOWN", GestureHandler.DIRECTION_DOWN
|
|
543
|
-
));
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
public RNGestureHandlerRegistry getRegistry() {
|
|
547
|
-
return mRegistry;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
@Override
|
|
552
|
-
public void onCatalystInstanceDestroy() {
|
|
553
|
-
mRegistry.dropAllHandlers();
|
|
554
|
-
mInteractionManager.reset();
|
|
555
|
-
synchronized (mRoots) {
|
|
556
|
-
while (!mRoots.isEmpty()) {
|
|
557
|
-
int sizeBefore = mRoots.size();
|
|
558
|
-
RNGestureHandlerRootHelper root = mRoots.get(0);
|
|
559
|
-
ViewGroup reactRootView = root.getRootView();
|
|
560
|
-
if (reactRootView instanceof RNGestureHandlerEnabledRootView) {
|
|
561
|
-
((RNGestureHandlerEnabledRootView) reactRootView).tearDown();
|
|
562
|
-
} else {
|
|
563
|
-
root.tearDown();
|
|
564
|
-
}
|
|
565
|
-
if (mRoots.size() >= sizeBefore) {
|
|
566
|
-
throw new IllegalStateException("Expected root helper to get unregistered while tearing down");
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
super.onCatalystInstanceDestroy();
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
private void tryInitializeHandlerForReactRootView(int ancestorViewTag) {
|
|
574
|
-
UIManagerModule uiManager = getReactApplicationContext().getNativeModule(UIManagerModule.class);
|
|
575
|
-
final int rootViewTag = uiManager.resolveRootTagFromReactTag(ancestorViewTag);
|
|
576
|
-
if (rootViewTag < 1) {
|
|
577
|
-
throw new JSApplicationIllegalArgumentException("Could find root view for a given ancestor with tag "
|
|
578
|
-
+ ancestorViewTag);
|
|
579
|
-
}
|
|
580
|
-
synchronized (mRoots) {
|
|
581
|
-
for (int i = 0; i < mRoots.size(); i++) {
|
|
582
|
-
RNGestureHandlerRootHelper root = mRoots.get(i);
|
|
583
|
-
ViewGroup rootView = root.getRootView();
|
|
584
|
-
if (rootView instanceof ReactRootView && ((ReactRootView) rootView).getRootViewTag() == rootViewTag) {
|
|
585
|
-
// we have found root helper registered for a given react root, we don't need to
|
|
586
|
-
// initialize a new one then
|
|
587
|
-
return;
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
synchronized (mEnqueuedRootViewInit) {
|
|
592
|
-
if (mEnqueuedRootViewInit.contains(rootViewTag)) {
|
|
593
|
-
// root view initialization already enqueued -> we skip
|
|
594
|
-
return;
|
|
595
|
-
}
|
|
596
|
-
mEnqueuedRootViewInit.add(rootViewTag);
|
|
597
|
-
}
|
|
598
|
-
// root helper for a given root tag has not been found, we may wat to check if the root view is
|
|
599
|
-
// an instance of RNGestureHandlerEnabledRootView and then initialize gesture handler with it
|
|
600
|
-
uiManager.addUIBlock(new UIBlock() {
|
|
601
|
-
@Override
|
|
602
|
-
public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
|
|
603
|
-
View view = nativeViewHierarchyManager.resolveView(rootViewTag);
|
|
604
|
-
if (view instanceof RNGestureHandlerEnabledRootView) {
|
|
605
|
-
((RNGestureHandlerEnabledRootView) view).initialize();
|
|
606
|
-
} else {
|
|
607
|
-
// Seems like the root view is something else than RNGestureHandlerEnabledRootView, this
|
|
608
|
-
// is fine though as long as gestureHandlerRootHOC is used in JS
|
|
609
|
-
// FIXME: check and warn about gestureHandlerRootHOC
|
|
610
|
-
}
|
|
611
|
-
synchronized (mEnqueuedRootViewInit) {
|
|
612
|
-
mEnqueuedRootViewInit.remove(new Integer(rootViewTag));
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
});
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
public void registerRootHelper(RNGestureHandlerRootHelper root) {
|
|
619
|
-
synchronized (mRoots) {
|
|
620
|
-
if (mRoots.contains(root)) {
|
|
621
|
-
throw new IllegalStateException("Root helper" + root + " already registered");
|
|
622
|
-
}
|
|
623
|
-
mRoots.add(root);
|
|
624
|
-
}
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
public void unregisterRootHelper(RNGestureHandlerRootHelper root) {
|
|
628
|
-
synchronized (mRoots) {
|
|
629
|
-
mRoots.remove(root);
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
private @Nullable RNGestureHandlerRootHelper findRootHelperForViewAncestor(int viewTag) {
|
|
635
|
-
UIManagerModule uiManager = getReactApplicationContext().getNativeModule(UIManagerModule.class);
|
|
636
|
-
int rootViewTag = uiManager.resolveRootTagFromReactTag(viewTag);
|
|
637
|
-
if (rootViewTag < 1) {
|
|
638
|
-
return null;
|
|
639
|
-
}
|
|
640
|
-
synchronized (mRoots) {
|
|
641
|
-
for (int i = 0; i < mRoots.size(); i++) {
|
|
642
|
-
RNGestureHandlerRootHelper root = mRoots.get(i);
|
|
643
|
-
ViewGroup rootView = root.getRootView();
|
|
644
|
-
if (rootView instanceof ReactRootView && ((ReactRootView) rootView).getRootViewTag() == rootViewTag) {
|
|
645
|
-
return root;
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
return null;
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
private @Nullable HandlerFactory findFactoryForHandler(GestureHandler handler) {
|
|
653
|
-
for (int i = 0; i < mHandlerFactories.length; i++) {
|
|
654
|
-
HandlerFactory factory = mHandlerFactories[i];
|
|
655
|
-
if (factory.getType().equals(handler.getClass())) {
|
|
656
|
-
return factory;
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
return null;
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
private void onTouchEvent(GestureHandler handler, MotionEvent motionEvent) {
|
|
663
|
-
if (handler.getTag() < 0) {
|
|
664
|
-
// root containers use negative tags, we don't need to dispatch events for them to the JS
|
|
665
|
-
return;
|
|
666
|
-
}
|
|
667
|
-
if (handler.getState() == GestureHandler.STATE_ACTIVE) {
|
|
668
|
-
HandlerFactory handlerFactory = findFactoryForHandler(handler);
|
|
669
|
-
EventDispatcher eventDispatcher = getReactApplicationContext()
|
|
670
|
-
.getNativeModule(UIManagerModule.class)
|
|
671
|
-
.getEventDispatcher();
|
|
672
|
-
RNGestureHandlerEvent event = RNGestureHandlerEvent.obtain(handler, handlerFactory);
|
|
673
|
-
eventDispatcher.dispatchEvent(event);
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
private void onStateChange(GestureHandler handler, int newState, int oldState) {
|
|
678
|
-
if (handler.getTag() < 0) {
|
|
679
|
-
// root containers use negative tags, we don't need to dispatch events for them to the JS
|
|
680
|
-
return;
|
|
681
|
-
}
|
|
682
|
-
HandlerFactory handlerFactory = findFactoryForHandler(handler);
|
|
683
|
-
EventDispatcher eventDispatcher = getReactApplicationContext()
|
|
684
|
-
.getNativeModule(UIManagerModule.class)
|
|
685
|
-
.getEventDispatcher();
|
|
686
|
-
RNGestureHandlerStateChangeEvent event = RNGestureHandlerStateChangeEvent.obtain(
|
|
687
|
-
handler,
|
|
688
|
-
newState,
|
|
689
|
-
oldState,
|
|
690
|
-
handlerFactory);
|
|
691
|
-
eventDispatcher.dispatchEvent(event);
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
private static void handleHitSlopProperty(GestureHandler handler, ReadableMap config) {
|
|
695
|
-
if (config.getType(KEY_HIT_SLOP) == ReadableType.Number) {
|
|
696
|
-
float hitSlop = PixelUtil.toPixelFromDIP(config.getDouble(KEY_HIT_SLOP));
|
|
697
|
-
handler.setHitSlop(hitSlop, hitSlop, hitSlop, hitSlop, HIT_SLOP_NONE, HIT_SLOP_NONE);
|
|
698
|
-
} else {
|
|
699
|
-
ReadableMap hitSlop = config.getMap(KEY_HIT_SLOP);
|
|
700
|
-
float left = HIT_SLOP_NONE, top = HIT_SLOP_NONE, right = HIT_SLOP_NONE, bottom = HIT_SLOP_NONE;
|
|
701
|
-
float width = HIT_SLOP_NONE, height = HIT_SLOP_NONE;
|
|
702
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_HORIZONTAL)) {
|
|
703
|
-
float horizontalPad = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_HORIZONTAL));
|
|
704
|
-
left = right = horizontalPad;
|
|
705
|
-
}
|
|
706
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_VERTICAL)) {
|
|
707
|
-
float verticalPad = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_VERTICAL));
|
|
708
|
-
top = bottom = verticalPad;
|
|
709
|
-
}
|
|
710
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_LEFT)) {
|
|
711
|
-
left = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_LEFT));
|
|
712
|
-
}
|
|
713
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_TOP)) {
|
|
714
|
-
top = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_TOP));
|
|
715
|
-
}
|
|
716
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_RIGHT)) {
|
|
717
|
-
right = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_RIGHT));
|
|
718
|
-
}
|
|
719
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_BOTTOM)) {
|
|
720
|
-
bottom = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_BOTTOM));
|
|
721
|
-
}
|
|
722
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_WIDTH)) {
|
|
723
|
-
width = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_WIDTH));
|
|
724
|
-
}
|
|
725
|
-
if (hitSlop.hasKey(KEY_HIT_SLOP_HEIGHT)) {
|
|
726
|
-
height = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_HEIGHT));
|
|
727
|
-
}
|
|
728
|
-
handler.setHitSlop(left, top, right, bottom, width, height);
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
}
|