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.
Files changed (382) hide show
  1. package/README.md +7 -6
  2. package/android/build.gradle +49 -1
  3. package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
  4. package/android/gradle.properties +19 -0
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +713 -0
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +562 -0
  11. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
  12. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
  13. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
  14. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
  15. package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
  16. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
  17. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
  18. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +289 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -0
  20. package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
  21. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
  22. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +79 -0
  23. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
  24. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
  25. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +348 -0
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +57 -0
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +59 -0
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +8 -0
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +61 -0
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +686 -0
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +17 -0
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +95 -0
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +132 -0
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +68 -0
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +34 -0
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +66 -0
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
  39. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
  40. package/ios/Handlers/RNFlingHandler.m +78 -5
  41. package/ios/Handlers/RNForceTouchHandler.m +29 -4
  42. package/ios/Handlers/RNLongPressHandler.m +105 -3
  43. package/ios/Handlers/RNManualHandler.h +4 -0
  44. package/ios/Handlers/RNManualHandler.m +73 -0
  45. package/ios/Handlers/RNNativeViewHandler.m +30 -2
  46. package/ios/Handlers/RNPanHandler.m +64 -4
  47. package/ios/Handlers/RNPinchHandler.m +61 -2
  48. package/ios/Handlers/RNRotationHandler.m +60 -1
  49. package/ios/Handlers/RNTapHandler.m +55 -8
  50. package/ios/RNGestureHandler.h +18 -4
  51. package/ios/RNGestureHandler.m +123 -13
  52. package/ios/RNGestureHandlerEvents.h +9 -0
  53. package/ios/RNGestureHandlerEvents.m +34 -0
  54. package/ios/RNGestureHandlerManager.h +7 -0
  55. package/ios/RNGestureHandlerManager.m +62 -34
  56. package/ios/RNGestureHandlerModule.m +39 -3
  57. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  58. package/ios/RNGestureHandlerPointerTracker.m +237 -0
  59. package/ios/RNGestureHandlerRegistry.h +1 -0
  60. package/ios/RNGestureHandlerRegistry.m +10 -0
  61. package/ios/RNGestureHandlerStateManager.h +5 -0
  62. package/ios/RNManualActivationRecognizer.h +10 -0
  63. package/ios/RNManualActivationRecognizer.m +80 -0
  64. package/ios/RNRootViewGestureRecognizer.m +1 -1
  65. package/ios/RNTouchEventType.h +9 -0
  66. package/lib/commonjs/EventType.js +16 -0
  67. package/lib/commonjs/EventType.js.map +1 -0
  68. package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
  69. package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
  70. package/lib/commonjs/GestureHandlerRootView.js +11 -3
  71. package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
  72. package/lib/commonjs/RNGestureHandlerModule.js +3 -1
  73. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  75. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  76. package/lib/commonjs/components/DrawerLayout.js +41 -37
  77. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  78. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  79. package/lib/commonjs/components/GestureComponents.js +31 -12
  80. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  81. package/lib/commonjs/components/Swipeable.js +10 -6
  82. package/lib/commonjs/components/Swipeable.js.map +1 -1
  83. package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
  84. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  85. package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
  86. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  87. package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
  88. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  89. package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
  90. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  91. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
  92. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  93. package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
  94. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  95. package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
  96. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  97. package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
  98. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  99. package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
  100. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  101. package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
  102. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  103. package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
  104. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  105. package/lib/commonjs/handlers/createHandler.js +52 -83
  106. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  107. package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
  108. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  109. package/lib/commonjs/handlers/gestures/GestureDetector.js +440 -0
  110. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  111. package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -0
  112. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  114. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  115. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
  116. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  117. package/lib/commonjs/handlers/gestures/gesture.js +193 -0
  118. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
  120. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  121. package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
  122. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  123. package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
  124. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  125. package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
  126. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  127. package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
  128. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  129. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  130. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  131. package/lib/commonjs/handlers/gestures/panGesture.js +144 -0
  132. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  133. package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
  134. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
  136. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  137. package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
  138. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  139. package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
  140. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  141. package/lib/commonjs/handlers/handlersRegistry.js +31 -0
  142. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  143. package/lib/commonjs/index.js +146 -8
  144. package/lib/commonjs/index.js.map +1 -1
  145. package/lib/commonjs/init.js +13 -0
  146. package/lib/commonjs/init.js.map +1 -0
  147. package/lib/commonjs/mocks.js +31 -2
  148. package/lib/commonjs/mocks.js.map +1 -1
  149. package/lib/commonjs/utils.js +15 -0
  150. package/lib/commonjs/utils.js.map +1 -0
  151. package/lib/commonjs/web/Errors.js +1 -1
  152. package/lib/commonjs/web/Errors.js.map +1 -1
  153. package/lib/commonjs/web/GestureHandler.js +4 -6
  154. package/lib/commonjs/web/GestureHandler.js.map +1 -1
  155. package/lib/commonjs/web/NodeManager.js +8 -2
  156. package/lib/commonjs/web/NodeManager.js.map +1 -1
  157. package/lib/module/EventType.js +8 -0
  158. package/lib/module/EventType.js.map +1 -0
  159. package/lib/module/GestureHandlerRootView.android.js +2 -14
  160. package/lib/module/GestureHandlerRootView.android.js.map +1 -1
  161. package/lib/module/GestureHandlerRootView.js +5 -1
  162. package/lib/module/GestureHandlerRootView.js.map +1 -1
  163. package/lib/module/RNGestureHandlerModule.js +3 -1
  164. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  165. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  166. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  167. package/lib/module/components/DrawerLayout.js +43 -40
  168. package/lib/module/components/DrawerLayout.js.map +1 -1
  169. package/lib/module/components/GestureButtons.js.map +1 -1
  170. package/lib/module/components/GestureComponents.js +29 -11
  171. package/lib/module/components/GestureComponents.js.map +1 -1
  172. package/lib/module/components/Swipeable.js +9 -6
  173. package/lib/module/components/Swipeable.js.map +1 -1
  174. package/lib/module/components/touchables/GenericTouchable.js +2 -1
  175. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  176. package/lib/module/components/touchables/TouchableOpacity.js +1 -1
  177. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  178. package/lib/module/gestureHandlerRootHOC.js +1 -1
  179. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  180. package/lib/module/handlers/FlingGestureHandler.js +10 -0
  181. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  182. package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
  183. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  184. package/lib/module/handlers/LongPressGestureHandler.js +10 -0
  185. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  186. package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
  187. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  188. package/lib/module/handlers/PanGestureHandler.js +106 -0
  189. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  190. package/lib/module/handlers/PinchGestureHandler.js +9 -0
  191. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  192. package/lib/module/handlers/RotationGestureHandler.js +9 -0
  193. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  194. package/lib/module/handlers/TapGestureHandler.js +10 -0
  195. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  196. package/lib/module/handlers/createHandler.js +41 -76
  197. package/lib/module/handlers/createHandler.js.map +1 -1
  198. package/lib/module/handlers/gestureHandlerCommon.js +66 -0
  199. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  200. package/lib/module/handlers/gestures/GestureDetector.js +402 -0
  201. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  202. package/lib/module/handlers/gestures/eventReceiver.js +120 -0
  203. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  204. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  205. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  206. package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
  207. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  208. package/lib/module/handlers/gestures/gesture.js +175 -0
  209. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gestureComposition.js +79 -0
  211. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  212. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  213. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  214. package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
  215. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  216. package/lib/module/handlers/gestures/longPressGesture.js +24 -0
  217. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  218. package/lib/module/handlers/gestures/manualGesture.js +22 -0
  219. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  220. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  221. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  222. package/lib/module/handlers/gestures/panGesture.js +135 -0
  223. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  224. package/lib/module/handlers/gestures/pinchGesture.js +36 -0
  225. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
  227. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  228. package/lib/module/handlers/gestures/rotationGesture.js +36 -0
  229. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  230. package/lib/module/handlers/gestures/tapGesture.js +49 -0
  231. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  232. package/lib/module/handlers/handlersRegistry.js +16 -0
  233. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  234. package/lib/module/index.js +22 -1
  235. package/lib/module/index.js.map +1 -1
  236. package/lib/module/init.js +5 -0
  237. package/lib/module/init.js.map +1 -0
  238. package/lib/module/mocks.js +31 -2
  239. package/lib/module/mocks.js.map +1 -1
  240. package/lib/module/utils.js +8 -0
  241. package/lib/module/utils.js.map +1 -0
  242. package/lib/module/web/Errors.js +1 -1
  243. package/lib/module/web/Errors.js.map +1 -1
  244. package/lib/module/web/GestureHandler.js +4 -6
  245. package/lib/module/web/GestureHandler.js.map +1 -1
  246. package/lib/module/web/NodeManager.js +8 -2
  247. package/lib/module/web/NodeManager.js.map +1 -1
  248. package/lib/typescript/EventType.d.ts +8 -0
  249. package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
  250. package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
  251. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
  252. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  253. package/lib/typescript/components/DrawerLayout.d.ts +50 -1
  254. package/lib/typescript/components/GestureButtons.d.ts +36 -0
  255. package/lib/typescript/components/GestureComponents.d.ts +8 -35
  256. package/lib/typescript/components/Swipeable.d.ts +73 -6
  257. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
  258. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  259. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  260. package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
  261. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
  262. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
  263. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
  264. package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
  265. package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
  266. package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
  267. package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
  268. package/lib/typescript/handlers/createHandler.d.ts +1 -1
  269. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
  270. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
  271. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
  272. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
  273. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  274. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +16 -0
  275. package/lib/typescript/handlers/gestures/gesture.d.ts +97 -0
  276. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  277. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
  278. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  279. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  280. package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
  281. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  282. package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
  283. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
  284. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  285. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
  286. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  287. package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
  288. package/lib/typescript/index.d.ts +29 -2
  289. package/lib/typescript/init.d.ts +1 -0
  290. package/lib/typescript/mocks.d.ts +21 -2
  291. package/lib/typescript/utils.d.ts +1 -0
  292. package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
  293. package/lib/typescript/web/GestureHandler.d.ts +0 -1
  294. package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
  295. package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
  296. package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
  297. package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
  298. package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
  299. package/package.json +8 -5
  300. package/src/EventType.ts +10 -0
  301. package/src/GestureHandlerRootView.android.tsx +9 -25
  302. package/src/GestureHandlerRootView.tsx +11 -2
  303. package/src/RNGestureHandlerModule.ts +5 -1
  304. package/src/RNGestureHandlerModule.web.ts +1 -0
  305. package/src/components/DrawerLayout.tsx +114 -41
  306. package/src/components/GestureButtons.tsx +45 -5
  307. package/src/components/GestureComponents.tsx +47 -41
  308. package/src/components/Swipeable.tsx +108 -21
  309. package/src/components/touchables/GenericTouchable.tsx +2 -1
  310. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  311. package/src/handlers/FlingGestureHandler.ts +57 -0
  312. package/src/handlers/ForceTouchGestureHandler.ts +83 -0
  313. package/src/handlers/LongPressGestureHandler.ts +84 -0
  314. package/src/handlers/NativeViewGestureHandler.ts +31 -7
  315. package/src/handlers/PanGestureHandler.ts +321 -0
  316. package/src/handlers/PinchGestureHandler.ts +46 -0
  317. package/src/handlers/RotationGestureHandler.ts +46 -0
  318. package/src/handlers/TapGestureHandler.ts +90 -0
  319. package/src/handlers/createHandler.ts +54 -79
  320. package/src/handlers/gestureHandlerCommon.ts +185 -0
  321. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  322. package/src/handlers/gestures/GestureDetector.tsx +519 -0
  323. package/src/handlers/gestures/eventReceiver.ts +151 -0
  324. package/src/handlers/gestures/flingGesture.ts +27 -0
  325. package/src/handlers/gestures/forceTouchGesture.ts +74 -0
  326. package/src/handlers/gestures/gesture.ts +292 -0
  327. package/src/handlers/gestures/gestureComposition.ts +109 -0
  328. package/src/handlers/gestures/gestureObjects.ts +79 -0
  329. package/src/handlers/gestures/gestureStateManager.ts +60 -0
  330. package/src/handlers/gestures/longPressGesture.ts +27 -0
  331. package/src/handlers/gestures/manualGesture.ts +31 -0
  332. package/src/handlers/gestures/nativeGesture.ts +27 -0
  333. package/src/handlers/gestures/panGesture.ts +147 -0
  334. package/src/handlers/gestures/pinchGesture.ts +51 -0
  335. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  336. package/src/handlers/gestures/rotationGesture.ts +51 -0
  337. package/src/handlers/gestures/tapGesture.ts +52 -0
  338. package/src/handlers/handlersRegistry.ts +22 -0
  339. package/src/index.ts +57 -17
  340. package/src/init.ts +5 -0
  341. package/src/mocks.ts +42 -2
  342. package/src/utils.ts +7 -0
  343. package/src/web/GestureHandler.ts +1 -2
  344. package/src/web/NodeManager.ts +5 -0
  345. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
  346. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
  347. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
  348. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
  349. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
  350. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
  351. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
  352. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
  353. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
  354. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
  355. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
  356. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
  357. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
  358. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
  359. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
  360. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
  361. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
  362. package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
  363. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
  364. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
  365. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
  366. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
  367. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
  368. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
  369. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
  370. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
  371. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
  372. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
  373. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
  374. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
  375. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
  376. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
  377. package/lib/commonjs/handlers/gestureHandlers.js +0 -236
  378. package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
  379. package/lib/module/handlers/gestureHandlers.js +0 -216
  380. package/lib/module/handlers/gestureHandlers.js.map +0 -1
  381. package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
  382. package/src/handlers/gestureHandlers.ts +0 -511
@@ -1,169 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- import android.view.MotionEvent;
4
-
5
- public class RotationGestureDetector {
6
-
7
- public interface OnRotationGestureListener {
8
-
9
- boolean onRotation(RotationGestureDetector detector);
10
-
11
- boolean onRotationBegin(RotationGestureDetector detector);
12
-
13
- void onRotationEnd(RotationGestureDetector detector);
14
- }
15
-
16
- private long mCurrTime;
17
- private long mPrevTime;
18
- private double mPrevAngle;
19
- private double mAngleDiff;
20
- private float mAnchorX;
21
- private float mAnchorY;
22
-
23
- private boolean mInProgress;
24
-
25
- private int mPointerIds[] = new int[2];
26
-
27
- private OnRotationGestureListener mListener;
28
-
29
- public RotationGestureDetector(OnRotationGestureListener listener) {
30
- mListener = listener;
31
- }
32
-
33
- private void updateCurrent(MotionEvent event) {
34
- mPrevTime = mCurrTime;
35
- mCurrTime = event.getEventTime();
36
-
37
- int firstPointerIndex = event.findPointerIndex(mPointerIds[0]);
38
- int secondPointerIndex = event.findPointerIndex(mPointerIds[1]);
39
-
40
- float firstPtX = event.getX(firstPointerIndex);
41
- float firstPtY = event.getY(firstPointerIndex);
42
- float secondPtX = event.getX(secondPointerIndex);
43
- float secondPtY = event.getY(secondPointerIndex);
44
-
45
- float vectorX = secondPtX - firstPtX;
46
- float vectorY = secondPtY - firstPtY;
47
-
48
- mAnchorX = (firstPtX + secondPtX) * 0.5f;
49
- mAnchorY = (firstPtY + secondPtY) * 0.5f;
50
-
51
- // Angle diff should be positive when rotating in clockwise direction
52
- double angle = -Math.atan2(vectorY, vectorX);
53
-
54
- if (Double.isNaN(mPrevAngle)) {
55
- mAngleDiff = 0.;
56
- } else {
57
- mAngleDiff = mPrevAngle - angle;
58
- }
59
- mPrevAngle = angle;
60
-
61
- if (mAngleDiff > Math.PI) {
62
- mAngleDiff -= Math.PI;
63
- } else if (mAngleDiff < -Math.PI) {
64
- mAngleDiff += Math.PI;
65
- }
66
-
67
- if (mAngleDiff > Math.PI / 2.) {
68
- mAngleDiff -= Math.PI;
69
- } else if (mAngleDiff < -Math.PI / 2.) {
70
- mAngleDiff += Math.PI;
71
- }
72
- }
73
-
74
- private void finish() {
75
- if (mInProgress) {
76
- mInProgress = false;
77
- if (mListener != null) {
78
- mListener.onRotationEnd(this);
79
- }
80
- }
81
- }
82
-
83
- public boolean onTouchEvent(MotionEvent event) {
84
- switch (event.getActionMasked()) {
85
-
86
- case MotionEvent.ACTION_DOWN:
87
- mInProgress = false;
88
- mPointerIds[0] = event.getPointerId(event.getActionIndex());
89
- mPointerIds[1] = MotionEvent.INVALID_POINTER_ID;
90
- break;
91
-
92
- case MotionEvent.ACTION_POINTER_DOWN:
93
- if (!mInProgress) {
94
- mPointerIds[1] = event.getPointerId(event.getActionIndex());
95
- mInProgress = true;
96
- mPrevTime = event.getEventTime();
97
- mPrevAngle = Double.NaN;
98
- updateCurrent(event);
99
- if (mListener != null) {
100
- mListener.onRotationBegin(this);
101
- }
102
- }
103
- break;
104
-
105
- case MotionEvent.ACTION_MOVE:
106
- if (mInProgress) {
107
- updateCurrent(event);
108
- if (mListener != null) {
109
- mListener.onRotation(this);
110
- }
111
- }
112
- break;
113
-
114
- case MotionEvent.ACTION_POINTER_UP:
115
- if (mInProgress) {
116
- int pointerId = event.getPointerId(event.getActionIndex());
117
- if (pointerId == mPointerIds[0] || pointerId == mPointerIds[1]) {
118
- // One of the key pointer has been lifted up, we have to end the gesture
119
- finish();
120
- }
121
- }
122
- break;
123
-
124
- case MotionEvent.ACTION_UP:
125
- finish();
126
- break;
127
- }
128
- return true;
129
- }
130
-
131
- /**
132
- * Returns rotation in radians since the previous rotation event.
133
- *
134
- * @return current rotation step in radians.
135
- */
136
- public double getRotation() {
137
- return mAngleDiff;
138
- }
139
-
140
- /**
141
- * Return the time difference in milliseconds between the previous
142
- * accepted rotation event and the current rotation event.
143
- *
144
- * @return Time difference since the last rotation event in milliseconds.
145
- */
146
- public long getTimeDelta() {
147
- return mCurrTime - mPrevTime;
148
- }
149
-
150
- /**
151
- * Returns X coordinate of the rotation anchor point relative to the view that the provided motion
152
- * event coordinates (usually relative to the view event was sent to).
153
- *
154
- * @return X coordinate of the rotation anchor point
155
- */
156
- public float getAnchorX() {
157
- return mAnchorX;
158
- }
159
-
160
- /**
161
- * Returns Y coordinate of the rotation anchor point relative to the view that the provided motion
162
- * event coordinates (usually relative to the view event was sent to).
163
- *
164
- * @return Y coordinate of the rotation anchor point
165
- */
166
- public float getAnchorY() {
167
- return mAnchorY;
168
- }
169
- }
@@ -1,96 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- import android.view.MotionEvent;
4
-
5
- public class RotationGestureHandler extends GestureHandler<RotationGestureHandler> {
6
-
7
- private static final double ROTATION_RECOGNITION_THRESHOLD = Math.PI / 36.; // 5 deg in radians
8
-
9
- private RotationGestureDetector mRotationGestureDetector;
10
- private double mLastRotation;
11
- private double mLastVelocity;
12
-
13
- private RotationGestureDetector.OnRotationGestureListener mGestureListener = new RotationGestureDetector.OnRotationGestureListener() {
14
-
15
- @Override
16
- public boolean onRotation(RotationGestureDetector detector) {
17
- double prevRotation = mLastRotation;
18
- mLastRotation += detector.getRotation();
19
- long delta = detector.getTimeDelta();
20
- if (delta > 0) {
21
- mLastVelocity = (mLastRotation - prevRotation) / delta;
22
- }
23
- if (Math.abs(mLastRotation) >= ROTATION_RECOGNITION_THRESHOLD && getState() == STATE_BEGAN) {
24
- activate();
25
- }
26
- return true;
27
- }
28
-
29
- @Override
30
- public boolean onRotationBegin(RotationGestureDetector detector) {
31
- return true;
32
- }
33
-
34
- @Override
35
- public void onRotationEnd(RotationGestureDetector detector) {
36
- end();
37
- }
38
- };
39
-
40
- public RotationGestureHandler() {
41
- setShouldCancelWhenOutside(false);
42
- }
43
-
44
- @Override
45
- protected void onHandle(MotionEvent event) {
46
- int state = getState();
47
- if (state == STATE_UNDETERMINED) {
48
- mLastVelocity = 0f;
49
- mLastRotation = 0f;
50
- mRotationGestureDetector = new RotationGestureDetector(mGestureListener);
51
-
52
- begin();
53
- }
54
-
55
- if (mRotationGestureDetector != null) {
56
- mRotationGestureDetector.onTouchEvent(event);
57
- }
58
-
59
- if (event.getActionMasked() == MotionEvent.ACTION_UP) {
60
- if (state == STATE_ACTIVE) {
61
- end();
62
- } else {
63
- fail();
64
- }
65
- }
66
- }
67
-
68
- @Override
69
- protected void onReset() {
70
- mRotationGestureDetector = null;
71
- mLastVelocity = 0f;
72
- mLastRotation = 0f;
73
- }
74
-
75
- public double getRotation() {
76
- return mLastRotation;
77
- }
78
-
79
- public double getVelocity() {
80
- return mLastVelocity;
81
- }
82
-
83
- public float getAnchorX() {
84
- if (mRotationGestureDetector == null) {
85
- return Float.NaN;
86
- }
87
- return mRotationGestureDetector.getAnchorX();
88
- }
89
-
90
- public float getAnchorY() {
91
- if (mRotationGestureDetector == null) {
92
- return Float.NaN;
93
- }
94
- return mRotationGestureDetector.getAnchorY();
95
- }
96
- }
@@ -1,172 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- import android.os.Handler;
4
- import android.view.MotionEvent;
5
-
6
- public class TapGestureHandler extends GestureHandler<TapGestureHandler> {
7
- private static float MAX_VALUE_IGNORE = Float.MIN_VALUE;
8
- private static final long DEFAULT_MAX_DURATION_MS = 500;
9
- private static final long DEFAULT_MAX_DELAY_MS = 500;
10
- private static final int DEFAULT_NUMBER_OF_TAPS = 1;
11
- private static final int DEFAULT_MIN_NUMBER_OF_POINTERS = 1;
12
-
13
- private float mMaxDeltaX = MAX_VALUE_IGNORE;
14
- private float mMaxDeltaY = MAX_VALUE_IGNORE;
15
- private float mMaxDistSq = MAX_VALUE_IGNORE;
16
-
17
- private long mMaxDurationMs = DEFAULT_MAX_DURATION_MS;
18
- private long mMaxDelayMs = DEFAULT_MAX_DELAY_MS;
19
- private int mNumberOfTaps = DEFAULT_NUMBER_OF_TAPS;
20
- private int mMinNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;
21
- private int mNumberOfPointers = 1;
22
-
23
- private float mStartX, mStartY;
24
- private float mOffsetX, mOffsetY;
25
- private float mLastX, mLastY;
26
-
27
- private Handler mHandler;
28
- private int mTapsSoFar;
29
-
30
- private final Runnable mFailDelayed = new Runnable() {
31
- @Override
32
- public void run() {
33
- fail();
34
- }
35
- };
36
-
37
- public TapGestureHandler setNumberOfTaps(int numberOfTaps) {
38
- mNumberOfTaps = numberOfTaps;
39
- return this;
40
- }
41
-
42
- public TapGestureHandler setMaxDelayMs(long maxDelayMs) {
43
- mMaxDelayMs = maxDelayMs;
44
- return this;
45
- }
46
-
47
- public TapGestureHandler setMaxDurationMs(long maxDurationMs) {
48
- mMaxDurationMs = maxDurationMs;
49
- return this;
50
- }
51
-
52
- public TapGestureHandler setMaxDx(float deltaX) {
53
- mMaxDeltaX = deltaX;
54
- return this;
55
- }
56
-
57
- public TapGestureHandler setMaxDy(float deltaY) {
58
- mMaxDeltaY = deltaY;
59
- return this;
60
- }
61
- public TapGestureHandler setMaxDist(float maxDist) {
62
- mMaxDistSq = maxDist * maxDist;
63
- return this;
64
- }
65
-
66
- public TapGestureHandler setMinNumberOfPointers(int minNumberOfPointers) {
67
- mMinNumberOfPointers = minNumberOfPointers;
68
- return this;
69
- }
70
-
71
- public TapGestureHandler() {
72
- setShouldCancelWhenOutside(true);
73
- }
74
-
75
- private void startTap() {
76
- if (mHandler == null) {
77
- mHandler = new Handler();
78
- } else {
79
- mHandler.removeCallbacksAndMessages(null);
80
- }
81
- mHandler.postDelayed(mFailDelayed, mMaxDurationMs);
82
- }
83
-
84
- private void endTap() {
85
- if (mHandler == null) {
86
- mHandler = new Handler();
87
- } else {
88
- mHandler.removeCallbacksAndMessages(null);
89
- }
90
- if (++mTapsSoFar == mNumberOfTaps && mNumberOfPointers >= mMinNumberOfPointers) {
91
- activate();
92
- end();
93
- } else {
94
- mHandler.postDelayed(mFailDelayed, mMaxDelayMs);
95
- }
96
- }
97
-
98
- private boolean shouldFail() {
99
- float dx = mLastX - mStartX + mOffsetX;
100
- if (mMaxDeltaX != MAX_VALUE_IGNORE && Math.abs(dx) > mMaxDeltaX) {
101
- return true;
102
- }
103
-
104
- float dy = mLastY - mStartY + mOffsetY;
105
- if (mMaxDeltaY != MAX_VALUE_IGNORE && Math.abs(dy) > mMaxDeltaY) {
106
- return true;
107
- }
108
-
109
- float dist = dy * dy + dx * dx;
110
- return mMaxDistSq != MAX_VALUE_IGNORE && dist > mMaxDistSq;
111
- }
112
-
113
- @Override
114
- protected void onHandle(MotionEvent event) {
115
- int state = getState();
116
- int action = event.getActionMasked();
117
-
118
- if (state == STATE_UNDETERMINED) {
119
- mOffsetX = 0;
120
- mOffsetY = 0;
121
- mStartX = event.getRawX();
122
- mStartY = event.getRawY();
123
- }
124
-
125
- if (action == MotionEvent.ACTION_POINTER_UP || action == MotionEvent.ACTION_POINTER_DOWN) {
126
- mOffsetX += mLastX - mStartX;
127
- mOffsetY += mLastY - mStartY;
128
- mLastX = GestureUtils.getLastPointerX(event, true);
129
- mLastY = GestureUtils.getLastPointerY(event, true);
130
- mStartX = mLastX;
131
- mStartY = mLastY;
132
- } else {
133
- mLastX = GestureUtils.getLastPointerX(event, true);
134
- mLastY = GestureUtils.getLastPointerY(event, true);
135
- }
136
-
137
- if (mNumberOfPointers < event.getPointerCount()) {
138
- mNumberOfPointers = event.getPointerCount();
139
- }
140
-
141
- if (shouldFail()) {
142
- fail();
143
- } else if (state == STATE_UNDETERMINED) {
144
- if (action == MotionEvent.ACTION_DOWN) {
145
- begin();
146
- }
147
- startTap();
148
- } else if (state == STATE_BEGAN) {
149
- if (action == MotionEvent.ACTION_UP) {
150
- endTap();
151
- } else if (action == MotionEvent.ACTION_DOWN) {
152
- startTap();
153
- }
154
- }
155
- }
156
-
157
- @Override
158
- protected void onCancel() {
159
- if (mHandler != null) {
160
- mHandler.removeCallbacksAndMessages(null);
161
- }
162
- }
163
-
164
- @Override
165
- protected void onReset() {
166
- mTapsSoFar = 0;
167
- mNumberOfPointers = 0;
168
- if (mHandler != null) {
169
- mHandler.removeCallbacksAndMessages(null);
170
- }
171
- }
172
- }
@@ -1,10 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- import android.view.View;
4
- import android.view.ViewGroup;
5
-
6
- public interface ViewConfigurationHelper {
7
- PointerEventsConfig getPointerEventsConfigForView(View view);
8
- View getChildInDrawingOrderAtIndex(ViewGroup parent, int index);
9
- boolean isViewClippingChildren(ViewGroup view);
10
- }
@@ -1,21 +0,0 @@
1
- package com.facebook.react.views.modal;
2
-
3
- import android.view.MotionEvent;
4
- import android.view.ViewGroup;
5
- import android.view.ViewParent;
6
-
7
- /**
8
- * For handling gestures inside RNGH we need to have access to some methods of
9
- * `ReactModalHostView.DialogRootViewGroup`. This class is not available outside
10
- * package so this file exports important features.
11
- */
12
-
13
- public class RNGHModalUtils {
14
- public static void dialogRootViewGroupOnChildStartedNativeGesture(ViewGroup modal, MotionEvent androidEvent) {
15
- ((ReactModalHostView.DialogRootViewGroup) modal).onChildStartedNativeGesture(androidEvent);
16
- }
17
-
18
- public static boolean isDialogRootViewGroup(ViewParent modal) {
19
- return modal instanceof ReactModalHostView.DialogRootViewGroup;
20
- }
21
- }