react-native-gesture-handler 2.5.0 → 2.6.0
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 +1 -0
- package/RNGestureHandler.podspec +17 -5
- package/android/build.gradle +71 -15
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +30 -9
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +5 -2
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +3 -2
- package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +7 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +1 -1
- package/android/src/main/jni/CMakeLists.txt +59 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +1 -1
- package/ios/RNGestureHandlerManager.mm +0 -5
- package/ios/RNGestureHandlerRootViewComponentView.mm +1 -1
- package/lib/commonjs/EnableExperimentalWebImplementation.js +24 -0
- package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +87 -30
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +87 -25
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +16 -0
- package/lib/commonjs/RNRenderer.js.map +1 -0
- package/lib/commonjs/RNRenderer.web.js +11 -0
- package/lib/commonjs/RNRenderer.web.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +3 -1
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +42 -9
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +41 -4
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +7 -2
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +3 -1
- 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/handlers/createHandler.js +8 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +67 -12
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/web/constants.js +3 -51
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +169 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +167 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +154 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/GestureHandler.js +538 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +147 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +116 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js +451 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +171 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +187 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js +296 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/web/interfaces.js +34 -0
- package/lib/commonjs/web/interfaces.js.map +1 -0
- package/lib/commonjs/web/tools/EventManager.js +169 -0
- package/lib/commonjs/web/tools/EventManager.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +283 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/commonjs/web/tools/InteractionManager.js +102 -0
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
- package/lib/commonjs/web/tools/NodeManager.js +48 -0
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
- package/lib/commonjs/web/tools/PointerTracker.js +132 -0
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/commonjs/web_hammer/constants.js +64 -0
- package/lib/commonjs/web_hammer/constants.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/utils.js +0 -0
- package/lib/commonjs/{web → web_hammer}/utils.js.map +0 -0
- package/lib/module/EnableExperimentalWebImplementation.js +15 -0
- package/lib/module/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +74 -29
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +73 -24
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNRenderer.js +4 -0
- package/lib/module/RNRenderer.js.map +1 -0
- package/lib/module/RNRenderer.web.js +4 -0
- package/lib/module/RNRenderer.web.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +3 -1
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +43 -9
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureComponents.js +39 -4
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +6 -2
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/Swipeable.js +3 -1
- 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/handlers/createHandler.js +9 -2
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +64 -11
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/web/constants.js +1 -36
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +159 -0
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js +156 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/module/web/handlers/FlingGestureHandler.js +139 -0
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/GestureHandler.js +521 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +133 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js +103 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PanGestureHandler.js +434 -0
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PinchGestureHandler.js +155 -0
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/TapGestureHandler.js +281 -0
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/web/interfaces.js +26 -0
- package/lib/module/web/interfaces.js.map +1 -0
- package/lib/module/web/tools/EventManager.js +160 -0
- package/lib/module/web/tools/EventManager.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +270 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/module/web/tools/InteractionManager.js +93 -0
- package/lib/module/web/tools/InteractionManager.js.map +1 -0
- package/lib/module/web/tools/NodeManager.js +39 -0
- package/lib/module/web/tools/NodeManager.js.map +1 -0
- package/lib/module/web/tools/PointerTracker.js +122 -0
- package/lib/module/web/tools/PointerTracker.js.map +1 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/Errors.js +0 -0
- package/lib/module/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/module/web_hammer/GestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/module/web_hammer/NodeManager.js.map +1 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/module/web_hammer/constants.js +43 -0
- package/lib/module/web_hammer/constants.js.map +1 -0
- package/lib/module/{web → web_hammer}/utils.js +0 -0
- package/lib/module/{web → web_hammer}/utils.js.map +0 -0
- package/lib/typescript/EnableExperimentalWebImplementation.d.ts +2 -0
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +28 -18
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +29 -18
- package/lib/typescript/RNRenderer.d.ts +1 -0
- package/lib/typescript/RNRenderer.web.d.ts +3 -0
- package/lib/typescript/components/DrawerLayout.d.ts +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +16 -0
- package/lib/typescript/components/GestureComponents.d.ts +7 -3
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
- package/lib/typescript/components/Swipeable.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/web/constants.d.ts +1 -33
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +30 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +31 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +84 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +33 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +16 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +68 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +49 -0
- package/lib/typescript/web/interfaces.d.ts +97 -0
- package/lib/typescript/web/tools/EventManager.d.ts +28 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +28 -0
- package/lib/typescript/web/tools/InteractionManager.d.ts +13 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +28 -0
- package/lib/typescript/{web → web_hammer}/DiscreteGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/DraggingGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/Errors.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/GestureHandler.d.ts +6 -0
- package/lib/typescript/{web → web_hammer}/IndiscreteGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
- package/lib/typescript/{web → web_hammer}/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/PinchGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/PressGestureHandler.d.ts +2 -0
- package/lib/typescript/{web → web_hammer}/RotationGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/constants.d.ts +39 -0
- package/lib/typescript/{web → web_hammer}/utils.d.ts +0 -0
- package/package.json +1 -1
- package/src/EnableExperimentalWebImplementation.ts +18 -0
- package/src/RNGestureHandlerModule.macos.ts +81 -29
- package/src/RNGestureHandlerModule.web.ts +89 -26
- package/src/RNRenderer.ts +3 -0
- package/src/RNRenderer.web.ts +3 -0
- package/src/components/DrawerLayout.tsx +3 -4
- package/src/components/GestureButtons.tsx +57 -0
- package/src/components/GestureComponents.tsx +66 -6
- package/src/components/GestureComponents.web.tsx +5 -0
- package/src/components/Swipeable.tsx +3 -1
- package/src/components/touchables/GenericTouchable.tsx +1 -0
- package/src/handlers/createHandler.tsx +13 -2
- package/src/handlers/gestures/GestureDetector.tsx +78 -12
- package/src/handlers/gestures/reanimatedWrapper.ts +7 -0
- package/src/index.ts +3 -0
- package/src/web/constants.ts +1 -41
- package/src/web/detectors/RotationGestureDetector.ts +199 -0
- package/src/web/detectors/ScaleGestureDetector.ts +208 -0
- package/src/web/handlers/FlingGestureHandler.ts +146 -0
- package/src/web/handlers/GestureHandler.ts +572 -0
- package/src/web/handlers/LongPressGestureHandler.ts +122 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +109 -0
- package/src/web/handlers/PanGestureHandler.ts +488 -0
- package/src/web/handlers/PinchGestureHandler.ts +162 -0
- package/src/web/handlers/RotationGestureHandler.ts +181 -0
- package/src/web/handlers/TapGestureHandler.ts +275 -0
- package/src/web/interfaces.ts +114 -0
- package/src/web/tools/EventManager.ts +186 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +329 -0
- package/src/web/tools/InteractionManager.ts +108 -0
- package/src/web/tools/NodeManager.ts +43 -0
- package/src/web/tools/PointerTracker.ts +130 -0
- package/src/{web → web_hammer}/DiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/DraggingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/Errors.ts +0 -0
- package/src/{web → web_hammer}/FlingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/GestureHandler.ts +102 -55
- package/src/{web → web_hammer}/IndiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/LongPressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/NativeViewGestureHandler.ts +4 -0
- package/src/{web → web_hammer}/NodeManager.ts +6 -3
- package/src/{web → web_hammer}/PanGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PinchGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/RotationGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/TapGestureHandler.ts +0 -0
- package/src/web_hammer/constants.ts +48 -0
- package/src/{web → web_hammer}/utils.ts +0 -0
- package/android/src/main/jni/Android.mk +0 -52
- package/android/src/main/jni/OnLoad.cpp +0 -9
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +0 -71
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +0 -34
- package/lib/commonjs/web/GestureHandler.js.map +0 -1
- package/lib/commonjs/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/commonjs/web/NodeManager.js.map +0 -1
- package/lib/module/web/GestureHandler.js.map +0 -1
- package/lib/module/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/module/web/NodeManager.js.map +0 -1
- package/lib/typescript/web/NodeManager.d.ts +0 -8
package/README.md
CHANGED
package/RNGestureHandler.podspec
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
require "json"
|
|
2
2
|
|
|
3
|
-
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED']
|
|
3
|
+
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
|
|
4
|
+
|
|
5
|
+
isUserApp = File.exists?(File.join(__dir__, "..", "..", "node_modules", "react-native", "package.json"))
|
|
6
|
+
if isUserApp
|
|
7
|
+
libInstances = %x[find ../../ -name "package.json" | grep "/react-native-gesture-handler/package.json" | grep -v "/.yarn/"]
|
|
8
|
+
libInstancesArray = libInstances.split("\n")
|
|
9
|
+
if libInstancesArray.length() > 1
|
|
10
|
+
parsedLocation = ''
|
|
11
|
+
for location in libInstancesArray
|
|
12
|
+
location['../../'] = '- '
|
|
13
|
+
location['/package.json'] = ''
|
|
14
|
+
parsedLocation += location + "\n"
|
|
15
|
+
end
|
|
16
|
+
raise "[Gesture Handler] Multiple versions of Gesture Handler were detected. Only one instance of react-native-gesture-handler can be installed in a project. You need to resolve the conflict manually. Check out the documentation: https://docs.swmansion.com/react-native-gesture-handler/docs/troubleshooting#multiple-versions-of-reanimated-were-detected \n\nConflict between: \n" + parsedLocation
|
|
17
|
+
end
|
|
18
|
+
end
|
|
4
19
|
|
|
5
20
|
Pod::Spec.new do |s|
|
|
6
21
|
# NPM package specification
|
|
@@ -17,9 +32,6 @@ Pod::Spec.new do |s|
|
|
|
17
32
|
s.requires_arc = true
|
|
18
33
|
|
|
19
34
|
if fabric_enabled
|
|
20
|
-
# folly_version must match the version used in React Native
|
|
21
|
-
# See folly_version in react-native/React/FBReactNativeSpec/FBReactNativeSpec.podspec
|
|
22
|
-
folly_version = '2021.06.28.00-v2'
|
|
23
35
|
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
24
36
|
|
|
25
37
|
s.pod_target_xcconfig = {
|
|
@@ -32,7 +44,7 @@ Pod::Spec.new do |s|
|
|
|
32
44
|
s.dependency "React"
|
|
33
45
|
s.dependency "React-RCTFabric" # This is for fabric component
|
|
34
46
|
s.dependency "React-Codegen"
|
|
35
|
-
s.dependency "RCT-Folly"
|
|
47
|
+
s.dependency "RCT-Folly"
|
|
36
48
|
s.dependency "RCTRequired"
|
|
37
49
|
s.dependency "RCTTypeSafety"
|
|
38
50
|
s.dependency "ReactCommon/turbomodule/core"
|
package/android/build.gradle
CHANGED
|
@@ -21,7 +21,7 @@ def isNewArchitectureEnabled() {
|
|
|
21
21
|
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
def findNodeModulePath(baseDir, packageName) {
|
|
24
|
+
static def findNodeModulePath(baseDir, packageName) {
|
|
25
25
|
def basePath = baseDir.toPath().normalize()
|
|
26
26
|
// Node's module resolution algorithm searches up to the root directory,
|
|
27
27
|
// after which the base path will be null
|
|
@@ -35,6 +35,13 @@ def findNodeModulePath(baseDir, packageName) {
|
|
|
35
35
|
return null
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
def findNodeModulePath(packageName) {
|
|
39
|
+
// Don't start in the project dir, as its path ends with node_modules/react-native-gesture-handler/android
|
|
40
|
+
// we want to go two levels up, so we end up in the first_node modules and eventually
|
|
41
|
+
// search upwards if the package is not found there
|
|
42
|
+
return findNodeModulePath(projectDir.toPath().parent.parent.toFile(), packageName)
|
|
43
|
+
}
|
|
44
|
+
|
|
38
45
|
if (isNewArchitectureEnabled()) {
|
|
39
46
|
apply plugin: 'com.facebook.react'
|
|
40
47
|
}
|
|
@@ -59,6 +66,45 @@ def shouldUseCommonInterfaceFromReanimated() {
|
|
|
59
66
|
}
|
|
60
67
|
}
|
|
61
68
|
|
|
69
|
+
def reactNativeArchitectures() {
|
|
70
|
+
def value = project.getProperties().get("reactNativeArchitectures")
|
|
71
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
def shouldAssertNoMultipleInstances() {
|
|
75
|
+
if (rootProject.hasProperty("disableMultipleInstancesCheck")) {
|
|
76
|
+
return rootProject.property("disableMultipleInstancesCheck") != "true"
|
|
77
|
+
} else {
|
|
78
|
+
return true
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
def noMultipleInstancesAssertion() {
|
|
83
|
+
Set<File> files = fileTree(rootDir.parent) {
|
|
84
|
+
include "node_modules/**/react-native-gesture-handler/package.json"
|
|
85
|
+
exclude "**/.yarn/**"
|
|
86
|
+
}.files
|
|
87
|
+
|
|
88
|
+
if (files.size() > 1) {
|
|
89
|
+
String parsedLocation = files.stream().map({ File file -> "- " + file.toString().replace("/package.json", "") }).collect().join("\n")
|
|
90
|
+
String exceptionMessage = "\n[Gesture Handler] Multiple instances of Gesture Handler were detected. Only one instance of react-native-gesture-handler can be installed in a project. You need to resolve the conflict manually. Check out the documentation: https://docs.swmansion.com/react-native-gesture-handler/docs/troubleshooting#multiple-instances-of-gesture-handler-were-detected \n\nConflict between: \n" + parsedLocation + "\n";
|
|
91
|
+
throw new Exception(exceptionMessage);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
def REACT_NATIVE_DIR = findNodeModulePath("react-native")
|
|
96
|
+
|
|
97
|
+
def assertionTask = task assertNoMultipleInstances {
|
|
98
|
+
onlyIf { shouldAssertNoMultipleInstances() }
|
|
99
|
+
doFirst {
|
|
100
|
+
noMultipleInstancesAssertion()
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
tasks.preBuild {
|
|
105
|
+
dependsOn assertionTask
|
|
106
|
+
}
|
|
107
|
+
|
|
62
108
|
repositories {
|
|
63
109
|
mavenCentral()
|
|
64
110
|
}
|
|
@@ -84,17 +130,12 @@ android {
|
|
|
84
130
|
if (isNewArchitectureEnabled()) {
|
|
85
131
|
var appProject = rootProject.allprojects.find {it.plugins.hasPlugin('com.android.application')}
|
|
86
132
|
externalNativeBuild {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"REACT_ANDROID_DIR=${findNodeModulePath(appProject.rootDir, "react-native") ?: "../node_modules/react-native/"}/ReactAndroid",
|
|
94
|
-
"REACT_ANDROID_BUILD_DIR=${findNodeModulePath(appProject.rootDir, "react-native") ?: "../node_modules/react-native/"}/ReactAndroid/build"
|
|
95
|
-
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
|
|
96
|
-
cppFlags "-std=c++17"
|
|
97
|
-
targets "rngesturehandler_modules"
|
|
133
|
+
cmake {
|
|
134
|
+
cppFlags "-O2 -frtti -fexceptions -Wall -Wno-unused-variable -fstack-protector-all"
|
|
135
|
+
arguments "-DAPP_BUILD_DIR=${appProject.buildDir}",
|
|
136
|
+
"-DREACT_NATIVE_DIR=${REACT_NATIVE_DIR}",
|
|
137
|
+
"-DANDROID_STL=c++_shared"
|
|
138
|
+
abiFilters (*reactNativeArchitectures())
|
|
98
139
|
}
|
|
99
140
|
}
|
|
100
141
|
}
|
|
@@ -107,8 +148,8 @@ android {
|
|
|
107
148
|
|
|
108
149
|
if (isNewArchitectureEnabled()) {
|
|
109
150
|
externalNativeBuild {
|
|
110
|
-
|
|
111
|
-
path "src/main/jni/
|
|
151
|
+
cmake {
|
|
152
|
+
path "src/main/jni/CMakeLists.txt"
|
|
112
153
|
}
|
|
113
154
|
}
|
|
114
155
|
}
|
|
@@ -116,7 +157,7 @@ android {
|
|
|
116
157
|
packagingOptions {
|
|
117
158
|
// For some reason gradle only complains about the duplicated version of libreact_render libraries
|
|
118
159
|
// while there are more libraries copied in intermediates folder of the lib build directory, we exclude
|
|
119
|
-
// only the ones that make the build fail (ideally we should only include
|
|
160
|
+
// only the ones that make the build fail (ideally we should only include libgesturehandler but we
|
|
120
161
|
// are only allowed to specify exclude patterns)
|
|
121
162
|
exclude "**/libreact_render*.so"
|
|
122
163
|
}
|
|
@@ -178,4 +219,19 @@ if (isNewArchitectureEnabled()) {
|
|
|
178
219
|
libraryName = "rngesturehandler"
|
|
179
220
|
codegenJavaPackageName = "com.swmansion.gesturehandler"
|
|
180
221
|
}
|
|
222
|
+
|
|
223
|
+
// Resolves "LOCAL_SRC_FILES points to a missing file, Check that libfb.so exists or that its path is correct".
|
|
224
|
+
tasks.whenTaskAdded { task ->
|
|
225
|
+
if (task.name.contains("configureCMakeDebug")) {
|
|
226
|
+
rootProject.getTasksByName("packageReactNdkDebugLibs", true).forEach {
|
|
227
|
+
task.dependsOn(it)
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// We want to add a dependency for both configureCMakeRelease and configureCMakeRelWithDebInfo
|
|
231
|
+
if (task.name.contains("configureCMakeRel")) {
|
|
232
|
+
rootProject.getTasksByName("packageReactNdkReleaseLibs", true).forEach {
|
|
233
|
+
task.dependsOn(it)
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
181
237
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.swmansion.gesturehandler
|
|
2
2
|
|
|
3
3
|
import android.os.Handler
|
|
4
|
+
import android.os.Looper
|
|
4
5
|
import android.view.MotionEvent
|
|
5
6
|
|
|
6
7
|
class FlingGestureHandler : GestureHandler<FlingGestureHandler>() {
|
|
@@ -27,7 +28,7 @@ class FlingGestureHandler : GestureHandler<FlingGestureHandler>() {
|
|
|
27
28
|
begin()
|
|
28
29
|
maxNumberOfPointersSimultaneously = 1
|
|
29
30
|
if (handler == null) {
|
|
30
|
-
handler = Handler() // lazy delegate?
|
|
31
|
+
handler = Handler(Looper.getMainLooper()) // lazy delegate?
|
|
31
32
|
} else {
|
|
32
33
|
handler!!.removeCallbacksAndMessages(null)
|
|
33
34
|
}
|
package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt
CHANGED
|
@@ -5,6 +5,7 @@ import android.graphics.PointF
|
|
|
5
5
|
import android.view.MotionEvent
|
|
6
6
|
import android.view.View
|
|
7
7
|
import android.view.ViewGroup
|
|
8
|
+
import android.widget.EditText
|
|
8
9
|
import java.util.*
|
|
9
10
|
|
|
10
11
|
class GestureHandlerOrchestrator(
|
|
@@ -128,6 +129,13 @@ class GestureHandlerOrchestrator(
|
|
|
128
129
|
if (newState == GestureHandler.STATE_END) {
|
|
129
130
|
// gesture has ended, we need to kill the awaiting handler
|
|
130
131
|
otherHandler.cancel()
|
|
132
|
+
if (otherHandler.state == GestureHandler.STATE_END) {
|
|
133
|
+
// Handle edge case, where discrete gestures end immediately after activation thus
|
|
134
|
+
// their state is set to END and when the gesture they are waiting for activates they
|
|
135
|
+
// should be cancelled, however `cancel` was never sent as gestures were already in the END state.
|
|
136
|
+
// Send synthetic BEGAN -> CANCELLED to properly handle JS logic
|
|
137
|
+
otherHandler.dispatchStateChange(GestureHandler.STATE_CANCELLED, GestureHandler.STATE_BEGAN)
|
|
138
|
+
}
|
|
131
139
|
otherHandler.isAwaiting = false
|
|
132
140
|
} else {
|
|
133
141
|
// gesture has failed recognition, we may try activating
|
|
@@ -142,9 +150,12 @@ class GestureHandlerOrchestrator(
|
|
|
142
150
|
} else if (prevState == GestureHandler.STATE_ACTIVE || prevState == GestureHandler.STATE_END) {
|
|
143
151
|
if (handler.isActive) {
|
|
144
152
|
handler.dispatchStateChange(newState, prevState)
|
|
145
|
-
} else if (prevState == GestureHandler.STATE_ACTIVE) {
|
|
146
|
-
//
|
|
147
|
-
// before the other would not send state change event upon ending
|
|
153
|
+
} else if (prevState == GestureHandler.STATE_ACTIVE && (newState == GestureHandler.STATE_CANCELLED || newState == GestureHandler.STATE_FAILED)) {
|
|
154
|
+
// Handle edge case where handler awaiting for another one tries to activate but finishes
|
|
155
|
+
// before the other would not send state change event upon ending. Note that we only want
|
|
156
|
+
// to do this if the newState is either CANCELLED or FAILED, if it is END we still want to
|
|
157
|
+
// wait for the other handler to finish as in that case synthetic events will be sent by the
|
|
158
|
+
// makeActive method.
|
|
148
159
|
handler.dispatchStateChange(newState, GestureHandler.STATE_BEGAN)
|
|
149
160
|
}
|
|
150
161
|
} else if (prevState != GestureHandler.STATE_UNDETERMINED || newState != GestureHandler.STATE_CANCELLED) {
|
|
@@ -474,14 +485,24 @@ class GestureHandlerOrchestrator(
|
|
|
474
485
|
}
|
|
475
486
|
PointerEventsConfig.BOX_NONE -> {
|
|
476
487
|
// This view can't be the target, but its children might
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
488
|
+
when (view) {
|
|
489
|
+
is ViewGroup -> {
|
|
490
|
+
extractGestureHandlers(view, coords, pointerId).also { found ->
|
|
491
|
+
// A child view is handling touch, also extract handlers attached to this view
|
|
492
|
+
if (found) {
|
|
493
|
+
recordViewHandlersForPointer(view, coords, pointerId)
|
|
494
|
+
}
|
|
482
495
|
}
|
|
483
496
|
}
|
|
484
|
-
|
|
497
|
+
// When <TextInput> has editable set to `false` getPointerEventsConfigForView returns
|
|
498
|
+
// `BOX_NONE` as it's `isEnabled` property is false. In this case we still want to extract
|
|
499
|
+
// handlers attached to the text input, as it makes sense that gestures would work on a
|
|
500
|
+
// non-editable TextInput.
|
|
501
|
+
is EditText -> {
|
|
502
|
+
recordViewHandlersForPointer(view, coords, pointerId)
|
|
503
|
+
}
|
|
504
|
+
else -> false
|
|
505
|
+
}
|
|
485
506
|
}
|
|
486
507
|
PointerEventsConfig.AUTO -> {
|
|
487
508
|
// Either this view or one of its children is the target
|
|
@@ -2,6 +2,7 @@ package com.swmansion.gesturehandler
|
|
|
2
2
|
|
|
3
3
|
import android.content.Context
|
|
4
4
|
import android.os.Handler
|
|
5
|
+
import android.os.Looper
|
|
5
6
|
import android.os.SystemClock
|
|
6
7
|
import android.view.MotionEvent
|
|
7
8
|
|
|
@@ -19,7 +20,9 @@ class LongPressGestureHandler(context: Context) : GestureHandler<LongPressGestur
|
|
|
19
20
|
|
|
20
21
|
init {
|
|
21
22
|
setShouldCancelWhenOutside(true)
|
|
22
|
-
|
|
23
|
+
|
|
24
|
+
val defaultMaxDist = DEFAULT_MAX_DIST_DP * context.resources.displayMetrics.density
|
|
25
|
+
defaultMaxDistSq = defaultMaxDist * defaultMaxDist
|
|
23
26
|
maxDistSq = defaultMaxDistSq
|
|
24
27
|
}
|
|
25
28
|
|
|
@@ -41,7 +44,7 @@ class LongPressGestureHandler(context: Context) : GestureHandler<LongPressGestur
|
|
|
41
44
|
begin()
|
|
42
45
|
startX = event.rawX
|
|
43
46
|
startY = event.rawY
|
|
44
|
-
handler = Handler()
|
|
47
|
+
handler = Handler(Looper.getMainLooper())
|
|
45
48
|
if (minDurationMs > 0) {
|
|
46
49
|
handler!!.postDelayed({ activate() }, minDurationMs)
|
|
47
50
|
} else if (minDurationMs == 0L) {
|
|
@@ -9,7 +9,8 @@ import com.facebook.react.views.textinput.ReactEditText
|
|
|
9
9
|
|
|
10
10
|
class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
|
|
11
11
|
private var shouldActivateOnStart = false
|
|
12
|
-
|
|
12
|
+
var disallowInterruption = false
|
|
13
|
+
private set
|
|
13
14
|
|
|
14
15
|
private var hook: NativeViewGestureHandlerHook = defaultHook
|
|
15
16
|
|
|
@@ -2,6 +2,7 @@ package com.swmansion.gesturehandler
|
|
|
2
2
|
|
|
3
3
|
import android.content.Context
|
|
4
4
|
import android.os.Handler
|
|
5
|
+
import android.os.Looper
|
|
5
6
|
import android.view.MotionEvent
|
|
6
7
|
import android.view.VelocityTracker
|
|
7
8
|
import android.view.ViewConfiguration
|
|
@@ -233,7 +234,7 @@ class PanGestureHandler(context: Context?) : GestureHandler<PanGestureHandler>()
|
|
|
233
234
|
|
|
234
235
|
if (activateAfterLongPress > 0) {
|
|
235
236
|
if (handler == null) {
|
|
236
|
-
handler = Handler()
|
|
237
|
+
handler = Handler(Looper.getMainLooper())
|
|
237
238
|
}
|
|
238
239
|
handler!!.postDelayed(activateDelayed, activateAfterLongPress)
|
|
239
240
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.swmansion.gesturehandler
|
|
2
2
|
|
|
3
3
|
import android.os.Handler
|
|
4
|
+
import android.os.Looper
|
|
4
5
|
import android.view.MotionEvent
|
|
5
6
|
import com.swmansion.gesturehandler.GestureUtils.getLastPointerX
|
|
6
7
|
import com.swmansion.gesturehandler.GestureUtils.getLastPointerY
|
|
@@ -70,7 +71,7 @@ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
|
|
|
70
71
|
|
|
71
72
|
private fun startTap() {
|
|
72
73
|
if (handler == null) {
|
|
73
|
-
handler = Handler() // TODO: lazy init (handle else branch correctly)
|
|
74
|
+
handler = Handler(Looper.getMainLooper()) // TODO: lazy init (handle else branch correctly)
|
|
74
75
|
} else {
|
|
75
76
|
handler!!.removeCallbacksAndMessages(null)
|
|
76
77
|
}
|
|
@@ -79,7 +80,7 @@ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
|
|
|
79
80
|
|
|
80
81
|
private fun endTap() {
|
|
81
82
|
if (handler == null) {
|
|
82
|
-
handler = Handler()
|
|
83
|
+
handler = Handler(Looper.getMainLooper())
|
|
83
84
|
} else {
|
|
84
85
|
handler!!.removeCallbacksAndMessages(null)
|
|
85
86
|
}
|
package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java
CHANGED
|
@@ -9,7 +9,7 @@ import com.facebook.soloader.SoLoader;
|
|
|
9
9
|
public class RNGestureHandlerComponentsRegistry {
|
|
10
10
|
static {
|
|
11
11
|
SoLoader.loadLibrary("fabricjni");
|
|
12
|
-
SoLoader.loadLibrary("
|
|
12
|
+
SoLoader.loadLibrary("gesturehandler");
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
@DoNotStrip private final HybridData mHybridData;
|
|
@@ -4,7 +4,6 @@ import com.facebook.react.ReactPackage
|
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
|
7
|
-
import com.facebook.soloader.SoLoader
|
|
8
7
|
import com.swmansion.gesturehandler.BuildConfig
|
|
9
8
|
import com.swmansion.gesturehandler.react.RNGestureHandlerModule
|
|
10
9
|
import com.swmansion.gesturehandler.react.RNGestureHandlerRootViewManager
|
|
@@ -12,13 +11,6 @@ import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager
|
|
|
12
11
|
|
|
13
12
|
class RNGestureHandlerPackage : ReactPackage {
|
|
14
13
|
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
15
|
-
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
16
|
-
// For Fabric, we load c++ native library here, this triggers gesture handler's
|
|
17
|
-
// Fabric component registration which is necessary in order to avoid asking users
|
|
18
|
-
// to manually add init calls in their application code.
|
|
19
|
-
// This should no longer be needed if RN's autolink mechanism has Fabric support
|
|
20
|
-
SoLoader.loadLibrary("rngesturehandler_modules")
|
|
21
|
-
}
|
|
22
14
|
return listOf<NativeModule>(RNGestureHandlerModule(reactContext))
|
|
23
15
|
}
|
|
24
16
|
|
|
@@ -4,6 +4,7 @@ import android.util.SparseArray
|
|
|
4
4
|
import com.facebook.react.bridge.ReadableMap
|
|
5
5
|
import com.swmansion.gesturehandler.GestureHandler
|
|
6
6
|
import com.swmansion.gesturehandler.GestureHandlerInteractionController
|
|
7
|
+
import com.swmansion.gesturehandler.NativeViewGestureHandler
|
|
7
8
|
|
|
8
9
|
class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
|
|
9
10
|
private val waitForRelations = SparseArray<IntArray>()
|
|
@@ -42,8 +43,13 @@ class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
|
|
|
42
43
|
otherHandler: GestureHandler<*>,
|
|
43
44
|
) = false
|
|
44
45
|
|
|
45
|
-
override fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, otherHandler: GestureHandler<*>)
|
|
46
|
+
override fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, otherHandler: GestureHandler<*>): Boolean {
|
|
47
|
+
if (otherHandler is NativeViewGestureHandler) {
|
|
48
|
+
return otherHandler.disallowInterruption
|
|
49
|
+
}
|
|
46
50
|
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
47
53
|
override fun shouldRecognizeSimultaneously(
|
|
48
54
|
handler: GestureHandler<*>,
|
|
49
55
|
otherHandler: GestureHandler<*>,
|
|
@@ -425,7 +425,7 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
|
425
425
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
426
426
|
fun install(): Boolean {
|
|
427
427
|
return try {
|
|
428
|
-
SoLoader.loadLibrary("
|
|
428
|
+
SoLoader.loadLibrary("gesturehandler")
|
|
429
429
|
val jsContext = reactApplicationContext.javaScriptContextHolder
|
|
430
430
|
decorateRuntime(jsContext.get())
|
|
431
431
|
true
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
project(GestureHandler)
|
|
2
|
+
cmake_minimum_required(VERSION 3.9.0)
|
|
3
|
+
|
|
4
|
+
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
5
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
6
|
+
set(CMAKE_CXX_FLAGS "-DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DFOLLY_HAVE_RECVMMSG=1 -DFOLLY_HAVE_PTHREAD=1")
|
|
7
|
+
|
|
8
|
+
add_library(gesturehandler
|
|
9
|
+
SHARED
|
|
10
|
+
cpp-adapter.cpp
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
set(REACT_ANDROID_DIR "${REACT_NATIVE_DIR}/ReactAndroid")
|
|
14
|
+
set(REACT_COMMON_DIR "${REACT_NATIVE_DIR}/ReactCommon")
|
|
15
|
+
set(REACT_NDK_EXPORT_DIR "${APP_BUILD_DIR}/react-ndk/exported")
|
|
16
|
+
|
|
17
|
+
# copied from react-native/ReactAndroid/cmake-utils/Android-prebuilt.cmake
|
|
18
|
+
|
|
19
|
+
## jsi
|
|
20
|
+
add_library(jsi SHARED IMPORTED GLOBAL)
|
|
21
|
+
set_target_properties(jsi
|
|
22
|
+
PROPERTIES
|
|
23
|
+
IMPORTED_LOCATION
|
|
24
|
+
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libjsi.so)
|
|
25
|
+
target_include_directories(jsi INTERFACE ${REACT_COMMON_DIR}/jsi)
|
|
26
|
+
|
|
27
|
+
## react_render_core
|
|
28
|
+
add_library(react_render_core SHARED IMPORTED GLOBAL)
|
|
29
|
+
set_target_properties(react_render_core
|
|
30
|
+
PROPERTIES
|
|
31
|
+
IMPORTED_LOCATION
|
|
32
|
+
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_core.so)
|
|
33
|
+
target_include_directories(react_render_core
|
|
34
|
+
INTERFACE
|
|
35
|
+
${REACT_COMMON_DIR}
|
|
36
|
+
${REACT_COMMON_DIR}/react/renderer/core)
|
|
37
|
+
|
|
38
|
+
## react_render_uimanager
|
|
39
|
+
add_library(react_render_uimanager SHARED IMPORTED GLOBAL)
|
|
40
|
+
set_target_properties(react_render_uimanager
|
|
41
|
+
PROPERTIES
|
|
42
|
+
IMPORTED_LOCATION
|
|
43
|
+
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_uimanager.so)
|
|
44
|
+
target_include_directories(react_render_uimanager INTERFACE ${REACT_COMMON_DIR}/react/renderer/uimanager)
|
|
45
|
+
|
|
46
|
+
target_include_directories(
|
|
47
|
+
gesturehandler
|
|
48
|
+
PRIVATE
|
|
49
|
+
"${REACT_ANDROID_DIR}/build/third-party-ndk/boost/boost_1_76_0"
|
|
50
|
+
"${REACT_ANDROID_DIR}/build/third-party-ndk/double-conversion"
|
|
51
|
+
"${REACT_ANDROID_DIR}/build/third-party-ndk/folly"
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
target_link_libraries(
|
|
55
|
+
gesturehandler
|
|
56
|
+
jsi
|
|
57
|
+
react_render_uimanager
|
|
58
|
+
react_render_core
|
|
59
|
+
)
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
#import "RNGestureHandlerButtonComponentView.h"
|
|
4
4
|
|
|
5
5
|
#import <React/RCTConversions.h>
|
|
6
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
6
7
|
|
|
7
8
|
#import <react/renderer/components/rngesturehandler/ComponentDescriptors.h>
|
|
8
9
|
#import <react/renderer/components/rngesturehandler/EventEmitters.h>
|
|
9
10
|
#import <react/renderer/components/rngesturehandler/Props.h>
|
|
10
11
|
#import <react/renderer/components/rngesturehandler/RCTComponentViewHelpers.h>
|
|
11
12
|
|
|
12
|
-
#import "RCTFabricComponentsPlugins.h"
|
|
13
13
|
#import "RNGestureHandlerButton.h"
|
|
14
14
|
|
|
15
15
|
using namespace facebook::react;
|
|
@@ -6,12 +6,7 @@
|
|
|
6
6
|
#import <React/RCTRootView.h>
|
|
7
7
|
#import <React/RCTUIManager.h>
|
|
8
8
|
#import <React/RCTEventDispatcher.h>
|
|
9
|
-
|
|
10
|
-
#if __has_include(<React/RCTRootContentView.h>)
|
|
11
9
|
#import <React/RCTRootContentView.h>
|
|
12
|
-
#else
|
|
13
|
-
#import "RCTRootContentView.h"
|
|
14
|
-
#endif
|
|
15
10
|
|
|
16
11
|
#import "RNGestureHandlerActionType.h"
|
|
17
12
|
#import "RNGestureHandlerState.h"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.enableExperimentalWebImplementation = enableExperimentalWebImplementation;
|
|
7
|
+
exports.isExperimentalWebImplementationEnabled = isExperimentalWebImplementationEnabled;
|
|
8
|
+
let EXPERIMENTAL_WEB_IMPLEMENTATION = false;
|
|
9
|
+
let getWasCalled = false;
|
|
10
|
+
|
|
11
|
+
function enableExperimentalWebImplementation(shouldEnable = true) {
|
|
12
|
+
if (getWasCalled) {
|
|
13
|
+
console.error('Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.');
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function isExperimentalWebImplementationEnabled() {
|
|
21
|
+
getWasCalled = true;
|
|
22
|
+
return EXPERIMENTAL_WEB_IMPLEMENTATION;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=EnableExperimentalWebImplementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["EnableExperimentalWebImplementation.ts"],"names":["EXPERIMENTAL_WEB_IMPLEMENTATION","getWasCalled","enableExperimentalWebImplementation","shouldEnable","console","error","isExperimentalWebImplementationEnabled"],"mappings":";;;;;;;AAAA,IAAIA,+BAA+B,GAAG,KAAtC;AACA,IAAIC,YAAY,GAAG,KAAnB;;AAEO,SAASC,mCAAT,CAA6CC,YAAY,GAAG,IAA5D,EAAwE;AAC7E,MAAIF,YAAJ,EAAkB;AAChBG,IAAAA,OAAO,CAACC,KAAR,CACE,4KADF;AAGA;AACD;;AAEDL,EAAAA,+BAA+B,GAAGG,YAAlC;AACD;;AAEM,SAASG,sCAAT,GAA2D;AAChEL,EAAAA,YAAY,GAAG,IAAf;AACA,SAAOD,+BAAP;AACD","sourcesContent":["let EXPERIMENTAL_WEB_IMPLEMENTATION = false;\nlet getWasCalled = false;\n\nexport function enableExperimentalWebImplementation(shouldEnable = true): void {\n if (getWasCalled) {\n console.error(\n 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'\n );\n return;\n }\n\n EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;\n}\n\nexport function isExperimentalWebImplementationEnabled(): boolean {\n getWasCalled = true;\n return EXPERIMENTAL_WEB_IMPLEMENTATION;\n}\n"]}
|