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
|
@@ -20,15 +20,19 @@
|
|
|
20
20
|
UITouch *_firstTouch;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
static const CGFloat defaultForce = 0;
|
|
24
|
+
static const CGFloat defaultMinForce = 0.2;
|
|
25
|
+
static const CGFloat defaultMaxForce = NAN;
|
|
26
|
+
static const BOOL defaultFeedbackOnActivation = NO;
|
|
23
27
|
|
|
24
28
|
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
|
|
25
29
|
{
|
|
26
30
|
if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
|
|
27
31
|
_gestureHandler = gestureHandler;
|
|
28
|
-
_force =
|
|
29
|
-
_minForce =
|
|
30
|
-
_maxForce =
|
|
31
|
-
_feedbackOnActivation =
|
|
32
|
+
_force = defaultForce;
|
|
33
|
+
_minForce = defaultMinForce;
|
|
34
|
+
_maxForce = defaultMaxForce;
|
|
35
|
+
_feedbackOnActivation = defaultFeedbackOnActivation;
|
|
32
36
|
}
|
|
33
37
|
return self;
|
|
34
38
|
}
|
|
@@ -40,6 +44,8 @@
|
|
|
40
44
|
return;
|
|
41
45
|
}
|
|
42
46
|
[super touchesBegan:touches withEvent:event];
|
|
47
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
48
|
+
|
|
43
49
|
_firstTouch = [touches anyObject];
|
|
44
50
|
[self handleForceWithTouches:touches];
|
|
45
51
|
self.state = UIGestureRecognizerStatePossible;
|
|
@@ -52,6 +58,7 @@
|
|
|
52
58
|
return;
|
|
53
59
|
}
|
|
54
60
|
[super touchesMoved:touches withEvent:event];
|
|
61
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
55
62
|
|
|
56
63
|
[self handleForceWithTouches:touches];
|
|
57
64
|
|
|
@@ -92,6 +99,7 @@
|
|
|
92
99
|
return;
|
|
93
100
|
}
|
|
94
101
|
[super touchesEnded:touches withEvent:event];
|
|
102
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
95
103
|
if (self.state == UIGestureRecognizerStateBegan || self.state == UIGestureRecognizerStateChanged) {
|
|
96
104
|
self.state = UIGestureRecognizerStateEnded;
|
|
97
105
|
} else {
|
|
@@ -99,11 +107,18 @@
|
|
|
99
107
|
}
|
|
100
108
|
}
|
|
101
109
|
|
|
110
|
+
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
111
|
+
{
|
|
112
|
+
[super touchesCancelled:touches withEvent:event];
|
|
113
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
114
|
+
}
|
|
115
|
+
|
|
102
116
|
- (void)handleForceWithTouches:(NSSet<UITouch *> *)touches {
|
|
103
117
|
_force = _firstTouch.force / _firstTouch.maximumPossibleForce;
|
|
104
118
|
}
|
|
105
119
|
|
|
106
120
|
- (void)reset {
|
|
121
|
+
[_gestureHandler.pointerTracker reset];
|
|
107
122
|
[super reset];
|
|
108
123
|
_force = 0;
|
|
109
124
|
_firstTouch = NULL;
|
|
@@ -121,6 +136,16 @@
|
|
|
121
136
|
return self;
|
|
122
137
|
}
|
|
123
138
|
|
|
139
|
+
- (void)resetConfig
|
|
140
|
+
{
|
|
141
|
+
[super resetConfig];
|
|
142
|
+
RNForceTouchGestureRecognizer *recognizer = (RNForceTouchGestureRecognizer *)_recognizer;
|
|
143
|
+
|
|
144
|
+
recognizer.feedbackOnActivation = defaultFeedbackOnActivation;
|
|
145
|
+
recognizer.maxForce = defaultMaxForce;
|
|
146
|
+
recognizer.minForce = defaultMinForce;
|
|
147
|
+
}
|
|
148
|
+
|
|
124
149
|
- (void)configure:(NSDictionary *)config
|
|
125
150
|
{
|
|
126
151
|
[super configure:config];
|
|
@@ -12,33 +12,107 @@
|
|
|
12
12
|
|
|
13
13
|
#import <React/RCTConvert.h>
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
#import <mach/mach_time.h>
|
|
16
|
+
|
|
17
|
+
@interface RNBetterLongPressGestureRecognizer : UILongPressGestureRecognizer {
|
|
18
|
+
uint64_t startTime;
|
|
19
|
+
uint64_t previousTime;
|
|
20
|
+
}
|
|
16
21
|
|
|
17
22
|
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
23
|
+
- (void)handleGesture:(UIGestureRecognizer *)recognizer;
|
|
24
|
+
- (NSUInteger) getDuration;
|
|
18
25
|
|
|
19
26
|
@end
|
|
20
27
|
|
|
21
28
|
@implementation RNBetterLongPressGestureRecognizer {
|
|
22
29
|
__weak RNGestureHandler *_gestureHandler;
|
|
30
|
+
CGPoint _initPosition;
|
|
23
31
|
}
|
|
24
32
|
|
|
25
33
|
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
|
|
26
34
|
{
|
|
27
|
-
if ((self = [super initWithTarget:
|
|
35
|
+
if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
|
|
28
36
|
_gestureHandler = gestureHandler;
|
|
29
37
|
}
|
|
30
38
|
return self;
|
|
31
39
|
}
|
|
32
40
|
|
|
41
|
+
- (void)handleGesture:(UIGestureRecognizer *)recognizer
|
|
42
|
+
{
|
|
43
|
+
previousTime = mach_absolute_time();
|
|
44
|
+
[_gestureHandler handleGesture:recognizer];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
- (void)triggerAction
|
|
48
|
+
{
|
|
49
|
+
[self handleGesture:self];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
- (CGPoint)translationInView
|
|
53
|
+
{
|
|
54
|
+
CGPoint currentPosition = [self locationInView:self.view];
|
|
55
|
+
return CGPointMake(currentPosition.x - _initPosition.x, currentPosition.y - _initPosition.y);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
59
|
+
{
|
|
60
|
+
[super touchesBegan:touches withEvent:event];
|
|
61
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
62
|
+
|
|
63
|
+
_initPosition = [self locationInView:self.view];
|
|
64
|
+
startTime = mach_absolute_time();
|
|
65
|
+
[_gestureHandler reset];
|
|
66
|
+
[self triggerAction];
|
|
67
|
+
}
|
|
68
|
+
|
|
33
69
|
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
34
70
|
{
|
|
35
71
|
[super touchesMoved:touches withEvent:event];
|
|
36
|
-
|
|
72
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
73
|
+
|
|
74
|
+
CGPoint trans = [self translationInView];
|
|
75
|
+
if ((_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView])
|
|
76
|
+
|| (TEST_MAX_IF_NOT_NAN(fabs(trans.y * trans.y + trans.x + trans.x), self.allowableMovement * self.allowableMovement))) {
|
|
37
77
|
self.enabled = NO;
|
|
38
78
|
self.enabled = YES;
|
|
39
79
|
}
|
|
40
80
|
}
|
|
41
81
|
|
|
82
|
+
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
83
|
+
{
|
|
84
|
+
[super touchesEnded:touches withEvent:event];
|
|
85
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
89
|
+
{
|
|
90
|
+
[super touchesCancelled:touches withEvent:event];
|
|
91
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
- (void)reset
|
|
95
|
+
{
|
|
96
|
+
if (self.state == UIGestureRecognizerStateFailed) {
|
|
97
|
+
[self triggerAction];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
[_gestureHandler.pointerTracker reset];
|
|
101
|
+
|
|
102
|
+
[super reset];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
- (NSUInteger)getDuration
|
|
106
|
+
{
|
|
107
|
+
static mach_timebase_info_data_t sTimebaseInfo;
|
|
108
|
+
|
|
109
|
+
if (sTimebaseInfo.denom == 0) {
|
|
110
|
+
mach_timebase_info(&sTimebaseInfo);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return (NSUInteger)(((previousTime - startTime) * sTimebaseInfo.numer / (sTimebaseInfo.denom * 1000000)));
|
|
114
|
+
}
|
|
115
|
+
|
|
42
116
|
@end
|
|
43
117
|
|
|
44
118
|
|
|
@@ -52,6 +126,15 @@
|
|
|
52
126
|
return self;
|
|
53
127
|
}
|
|
54
128
|
|
|
129
|
+
- (void)resetConfig
|
|
130
|
+
{
|
|
131
|
+
[super resetConfig];
|
|
132
|
+
UILongPressGestureRecognizer *recognizer = (UILongPressGestureRecognizer *)_recognizer;
|
|
133
|
+
|
|
134
|
+
recognizer.minimumPressDuration = 0.5;
|
|
135
|
+
recognizer.allowableMovement = 10;
|
|
136
|
+
}
|
|
137
|
+
|
|
55
138
|
- (void)configure:(NSDictionary *)config
|
|
56
139
|
{
|
|
57
140
|
[super configure:config];
|
|
@@ -79,5 +162,24 @@
|
|
|
79
162
|
}
|
|
80
163
|
return [super state];
|
|
81
164
|
}
|
|
165
|
+
|
|
166
|
+
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
|
167
|
+
{
|
|
168
|
+
//same as TapGH, this needs to be unified when all handlers are updated
|
|
169
|
+
RNGestureHandlerState savedState = _lastState;
|
|
170
|
+
BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
|
|
171
|
+
_lastState = savedState;
|
|
172
|
+
|
|
173
|
+
return shouldBegin;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIGestureRecognizer *)recognizer
|
|
177
|
+
{
|
|
178
|
+
return [RNGestureHandlerEventExtraData
|
|
179
|
+
forPosition:[recognizer locationInView:recognizer.view]
|
|
180
|
+
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
|
181
|
+
withNumberOfTouches:recognizer.numberOfTouches
|
|
182
|
+
withDuration:[(RNBetterLongPressGestureRecognizer*)recognizer getDuration]];
|
|
183
|
+
}
|
|
82
184
|
@end
|
|
83
185
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#import "RNManualHandler.h"
|
|
2
|
+
|
|
3
|
+
@interface RNManualRecognizer : UIGestureRecognizer
|
|
4
|
+
|
|
5
|
+
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
6
|
+
|
|
7
|
+
@end
|
|
8
|
+
|
|
9
|
+
@implementation RNManualRecognizer {
|
|
10
|
+
__weak RNGestureHandler *_gestureHandler;
|
|
11
|
+
BOOL _shouldSendBeginEvent;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
|
15
|
+
{
|
|
16
|
+
if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
|
|
17
|
+
_gestureHandler = gestureHandler;
|
|
18
|
+
_shouldSendBeginEvent = YES;
|
|
19
|
+
}
|
|
20
|
+
return self;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
24
|
+
{
|
|
25
|
+
[super touchesBegan:touches withEvent:event];
|
|
26
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
27
|
+
|
|
28
|
+
if (_shouldSendBeginEvent) {
|
|
29
|
+
[_gestureHandler handleGesture:self];
|
|
30
|
+
_shouldSendBeginEvent = NO;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
35
|
+
{
|
|
36
|
+
[super touchesMoved:touches withEvent:event];
|
|
37
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
41
|
+
{
|
|
42
|
+
[super touchesEnded:touches withEvent:event];
|
|
43
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
47
|
+
{
|
|
48
|
+
[super touchesCancelled:touches withEvent:event];
|
|
49
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
- (void)reset
|
|
53
|
+
{
|
|
54
|
+
[_gestureHandler.pointerTracker reset];
|
|
55
|
+
[super reset];
|
|
56
|
+
|
|
57
|
+
_shouldSendBeginEvent = YES;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@end
|
|
61
|
+
|
|
62
|
+
@implementation RNManualGestureHandler
|
|
63
|
+
|
|
64
|
+
- (instancetype)initWithTag:(NSNumber *)tag
|
|
65
|
+
{
|
|
66
|
+
if ((self = [super initWithTag:tag])) {
|
|
67
|
+
_recognizer = [[RNManualRecognizer alloc] initWithGestureHandler:self];
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
return self;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@end
|
|
@@ -16,20 +16,48 @@
|
|
|
16
16
|
|
|
17
17
|
#pragma mark RNDummyGestureRecognizer
|
|
18
18
|
|
|
19
|
-
@implementation RNDummyGestureRecognizer
|
|
19
|
+
@implementation RNDummyGestureRecognizer {
|
|
20
|
+
__weak RNGestureHandler *_gestureHandler;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
|
24
|
+
{
|
|
25
|
+
if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
|
|
26
|
+
_gestureHandler = gestureHandler;
|
|
27
|
+
}
|
|
28
|
+
return self;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
32
|
+
{
|
|
33
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
37
|
+
{
|
|
38
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
39
|
+
}
|
|
20
40
|
|
|
21
41
|
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
22
42
|
{
|
|
43
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
23
44
|
self.state = UIGestureRecognizerStateFailed;
|
|
24
45
|
[self reset];
|
|
25
46
|
}
|
|
26
47
|
|
|
27
48
|
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
28
49
|
{
|
|
50
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
29
51
|
self.state = UIGestureRecognizerStateCancelled;
|
|
30
52
|
[self reset];
|
|
31
53
|
}
|
|
32
54
|
|
|
55
|
+
-(void)reset
|
|
56
|
+
{
|
|
57
|
+
[_gestureHandler.pointerTracker reset];
|
|
58
|
+
[super reset];
|
|
59
|
+
}
|
|
60
|
+
|
|
33
61
|
@end
|
|
34
62
|
|
|
35
63
|
#pragma mark RNNativeViewgestureHandler
|
|
@@ -42,7 +70,7 @@
|
|
|
42
70
|
- (instancetype)initWithTag:(NSNumber *)tag
|
|
43
71
|
{
|
|
44
72
|
if ((self = [super initWithTag:tag])) {
|
|
45
|
-
_recognizer = [[RNDummyGestureRecognizer alloc]
|
|
73
|
+
_recognizer = [[RNDummyGestureRecognizer alloc] initWithGestureHandler:self];
|
|
46
74
|
}
|
|
47
75
|
return self;
|
|
48
76
|
}
|
|
@@ -61,6 +61,11 @@
|
|
|
61
61
|
return self;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
- (void)triggerAction
|
|
65
|
+
{
|
|
66
|
+
[_gestureHandler handleGesture:self];
|
|
67
|
+
}
|
|
68
|
+
|
|
64
69
|
- (void)setMinimumNumberOfTouches:(NSUInteger)minimumNumberOfTouches
|
|
65
70
|
{
|
|
66
71
|
_realMinimumNumberOfTouches = minimumNumberOfTouches;
|
|
@@ -68,6 +73,9 @@
|
|
|
68
73
|
|
|
69
74
|
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
70
75
|
{
|
|
76
|
+
if ([self numberOfTouches] == 0) {
|
|
77
|
+
[_gestureHandler reset];
|
|
78
|
+
}
|
|
71
79
|
#if !TARGET_OS_TV
|
|
72
80
|
if (_hasCustomActivationCriteria) {
|
|
73
81
|
// We use "minimumNumberOfTouches" property to prevent pan handler from recognizing
|
|
@@ -79,11 +87,15 @@
|
|
|
79
87
|
}
|
|
80
88
|
#endif
|
|
81
89
|
[super touchesBegan:touches withEvent:event];
|
|
90
|
+
[self triggerAction];
|
|
91
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
82
92
|
}
|
|
83
93
|
|
|
84
94
|
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
85
95
|
{
|
|
86
96
|
[super touchesMoved:touches withEvent:event];
|
|
97
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
98
|
+
|
|
87
99
|
if (self.state == UIGestureRecognizerStatePossible && [self shouldFailUnderCustomCriteria]) {
|
|
88
100
|
self.state = UIGestureRecognizerStateFailed;
|
|
89
101
|
return;
|
|
@@ -112,8 +124,22 @@
|
|
|
112
124
|
}
|
|
113
125
|
}
|
|
114
126
|
|
|
127
|
+
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
128
|
+
{
|
|
129
|
+
[super touchesEnded:touches withEvent:event];
|
|
130
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
134
|
+
{
|
|
135
|
+
[super touchesCancelled:touches withEvent:event];
|
|
136
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
137
|
+
}
|
|
138
|
+
|
|
115
139
|
- (void)reset
|
|
116
140
|
{
|
|
141
|
+
[self triggerAction];
|
|
142
|
+
[_gestureHandler.pointerTracker reset];
|
|
117
143
|
self.enabled = YES;
|
|
118
144
|
[super reset];
|
|
119
145
|
}
|
|
@@ -128,7 +154,7 @@
|
|
|
128
154
|
|
|
129
155
|
- (BOOL)shouldFailUnderCustomCriteria
|
|
130
156
|
{
|
|
131
|
-
CGPoint trans = [self translationInView:self.view];
|
|
157
|
+
CGPoint trans = [self translationInView:self.view.window];
|
|
132
158
|
if (!isnan(_failOffsetXStart) && trans.x < _failOffsetXStart) {
|
|
133
159
|
return YES;
|
|
134
160
|
}
|
|
@@ -146,7 +172,7 @@
|
|
|
146
172
|
|
|
147
173
|
- (BOOL)shouldActivateUnderCustomCriteria
|
|
148
174
|
{
|
|
149
|
-
CGPoint trans = [self translationInView:self.view];
|
|
175
|
+
CGPoint trans = [self translationInView:self.view.window];
|
|
150
176
|
if (!isnan(_activeOffsetXStart) && trans.x < _activeOffsetXStart) {
|
|
151
177
|
return YES;
|
|
152
178
|
}
|
|
@@ -190,6 +216,32 @@
|
|
|
190
216
|
return self;
|
|
191
217
|
}
|
|
192
218
|
|
|
219
|
+
- (void)resetConfig
|
|
220
|
+
{
|
|
221
|
+
[super resetConfig];
|
|
222
|
+
RNBetterPanGestureRecognizer *recognizer = (RNBetterPanGestureRecognizer *)_recognizer;
|
|
223
|
+
recognizer.minVelocityX = NAN;
|
|
224
|
+
recognizer.minVelocityY = NAN;
|
|
225
|
+
recognizer.activeOffsetXStart = NAN;
|
|
226
|
+
recognizer.activeOffsetXEnd = NAN;
|
|
227
|
+
recognizer.failOffsetXStart = NAN;
|
|
228
|
+
recognizer.failOffsetXEnd = NAN;
|
|
229
|
+
recognizer.activeOffsetYStart = NAN;
|
|
230
|
+
recognizer.activeOffsetYEnd = NAN;
|
|
231
|
+
recognizer.failOffsetYStart = NAN;
|
|
232
|
+
recognizer.failOffsetYStart = NAN;
|
|
233
|
+
recognizer.failOffsetYEnd = NAN;
|
|
234
|
+
#if !TARGET_OS_TV && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130400
|
|
235
|
+
if (@available(iOS 13.4, *)) {
|
|
236
|
+
recognizer.allowedScrollTypesMask = 0;
|
|
237
|
+
}
|
|
238
|
+
#endif
|
|
239
|
+
recognizer.minimumNumberOfTouches = 1;
|
|
240
|
+
recognizer.maximumNumberOfTouches = NSUIntegerMax;
|
|
241
|
+
recognizer.minDistSq = NAN;
|
|
242
|
+
recognizer.minVelocitySq = NAN;
|
|
243
|
+
}
|
|
244
|
+
|
|
193
245
|
- (void)configure:(NSDictionary *)config
|
|
194
246
|
{
|
|
195
247
|
[super configure:config];
|
|
@@ -232,15 +284,23 @@
|
|
|
232
284
|
[recognizer updateHasCustomActivationCriteria];
|
|
233
285
|
}
|
|
234
286
|
|
|
287
|
+
- (BOOL) gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
|
288
|
+
{
|
|
289
|
+
RNGestureHandlerState savedState = _lastState;
|
|
290
|
+
BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
|
|
291
|
+
_lastState = savedState;
|
|
292
|
+
|
|
293
|
+
return shouldBegin;
|
|
294
|
+
}
|
|
295
|
+
|
|
235
296
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIPanGestureRecognizer *)recognizer
|
|
236
297
|
{
|
|
237
298
|
return [RNGestureHandlerEventExtraData
|
|
238
299
|
forPan:[recognizer locationInView:recognizer.view]
|
|
239
300
|
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
|
240
|
-
withTranslation:[recognizer translationInView:recognizer.view]
|
|
301
|
+
withTranslation:[recognizer translationInView:recognizer.view.window]
|
|
241
302
|
withVelocity:[recognizer velocityInView:recognizer.view.window]
|
|
242
303
|
withNumberOfTouches:recognizer.numberOfTouches];
|
|
243
304
|
}
|
|
244
305
|
|
|
245
306
|
@end
|
|
246
|
-
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
//
|
|
2
4
|
// RNPinchHandler.m
|
|
3
5
|
// RNGestureHandler
|
|
@@ -8,13 +10,71 @@
|
|
|
8
10
|
|
|
9
11
|
#import "RNPinchHandler.h"
|
|
10
12
|
|
|
13
|
+
@interface RNBetterPinchRecognizer : UIPinchGestureRecognizer
|
|
14
|
+
|
|
15
|
+
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
16
|
+
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
@implementation RNBetterPinchRecognizer {
|
|
20
|
+
__weak RNGestureHandler *_gestureHandler;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
|
24
|
+
{
|
|
25
|
+
if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
|
|
26
|
+
_gestureHandler = gestureHandler;
|
|
27
|
+
}
|
|
28
|
+
return self;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (void)handleGesture:(UIGestureRecognizer *)recognizer
|
|
32
|
+
{
|
|
33
|
+
if (self.state == UIGestureRecognizerStateBegan) {
|
|
34
|
+
self.scale = 1;
|
|
35
|
+
}
|
|
36
|
+
[_gestureHandler handleGesture:recognizer];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
40
|
+
{
|
|
41
|
+
[super touchesBegan:touches withEvent:event];
|
|
42
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
46
|
+
{
|
|
47
|
+
[super touchesMoved:touches withEvent:event];
|
|
48
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
52
|
+
{
|
|
53
|
+
[super touchesEnded:touches withEvent:event];
|
|
54
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
58
|
+
{
|
|
59
|
+
[super touchesCancelled:touches withEvent:event];
|
|
60
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
- (void)reset
|
|
64
|
+
{
|
|
65
|
+
[_gestureHandler.pointerTracker reset];
|
|
66
|
+
[super reset];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@end
|
|
70
|
+
|
|
11
71
|
@implementation RNPinchGestureHandler
|
|
12
72
|
|
|
13
73
|
- (instancetype)initWithTag:(NSNumber *)tag
|
|
14
74
|
{
|
|
15
75
|
if ((self = [super initWithTag:tag])) {
|
|
16
76
|
#if !TARGET_OS_TV
|
|
17
|
-
_recognizer = [[
|
|
77
|
+
_recognizer = [[RNBetterPinchRecognizer alloc] initWithGestureHandler:self];
|
|
18
78
|
#endif
|
|
19
79
|
}
|
|
20
80
|
return self;
|
|
@@ -32,4 +92,3 @@
|
|
|
32
92
|
#endif
|
|
33
93
|
|
|
34
94
|
@end
|
|
35
|
-
|
|
@@ -8,13 +8,72 @@
|
|
|
8
8
|
|
|
9
9
|
#import "RNRotationHandler.h"
|
|
10
10
|
|
|
11
|
+
@interface RNBetterRotationRecognizer : UIRotationGestureRecognizer
|
|
12
|
+
|
|
13
|
+
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
14
|
+
|
|
15
|
+
@end
|
|
16
|
+
|
|
17
|
+
@implementation RNBetterRotationRecognizer {
|
|
18
|
+
__weak RNGestureHandler *_gestureHandler;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
|
22
|
+
{
|
|
23
|
+
if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
|
|
24
|
+
_gestureHandler = gestureHandler;
|
|
25
|
+
}
|
|
26
|
+
return self;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (void)handleGesture:(UIGestureRecognizer *)recognizer
|
|
30
|
+
{
|
|
31
|
+
if (self.state == UIGestureRecognizerStateBegan) {
|
|
32
|
+
self.rotation = 0;
|
|
33
|
+
}
|
|
34
|
+
[_gestureHandler handleGesture:recognizer];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
39
|
+
{
|
|
40
|
+
[super touchesBegan:touches withEvent:event];
|
|
41
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
45
|
+
{
|
|
46
|
+
[super touchesMoved:touches withEvent:event];
|
|
47
|
+
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
51
|
+
{
|
|
52
|
+
[super touchesEnded:touches withEvent:event];
|
|
53
|
+
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
57
|
+
{
|
|
58
|
+
[super touchesCancelled:touches withEvent:event];
|
|
59
|
+
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
- (void)reset
|
|
63
|
+
{
|
|
64
|
+
[_gestureHandler.pointerTracker reset];
|
|
65
|
+
[super reset];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@end
|
|
69
|
+
|
|
11
70
|
@implementation RNRotationGestureHandler
|
|
12
71
|
|
|
13
72
|
- (instancetype)initWithTag:(NSNumber *)tag
|
|
14
73
|
{
|
|
15
74
|
if ((self = [super initWithTag:tag])) {
|
|
16
75
|
#if !TARGET_OS_TV
|
|
17
|
-
_recognizer = [[
|
|
76
|
+
_recognizer = [[RNBetterRotationRecognizer alloc] initWithGestureHandler:self];
|
|
18
77
|
#endif
|
|
19
78
|
}
|
|
20
79
|
return self;
|