react-native-gesture-handler 1.10.3 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
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,110 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- import android.os.Handler;
4
- import android.view.MotionEvent;
5
-
6
- public class FlingGestureHandler extends GestureHandler<FlingGestureHandler> {
7
- private static final long DEFAULT_MAX_DURATION_MS = 800;
8
- private static final long DEFAULT_MIN_ACCEPTABLE_DELTA = 160;
9
- private static final int DEFAULT_DIRECTION = DIRECTION_RIGHT;
10
- private static final int DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;
11
-
12
- private long mMaxDurationMs = DEFAULT_MAX_DURATION_MS;
13
- private long mMinAcceptableDelta = DEFAULT_MIN_ACCEPTABLE_DELTA;
14
- private int mDirection = DEFAULT_DIRECTION;
15
- private int mNumberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;
16
- private float mStartX, mStartY;
17
-
18
- private Handler mHandler;
19
- private int mMaxNumberOfPointersSimultaneously;
20
-
21
- private final Runnable mFailDelayed = new Runnable() {
22
- @Override
23
- public void run() {
24
- fail();
25
- }
26
- };
27
-
28
- public void setNumberOfPointersRequired(int numberOfPointersRequired) {
29
- mNumberOfPointersRequired = numberOfPointersRequired;
30
- }
31
-
32
- public void setDirection(int direction) {
33
- mDirection = direction;
34
- }
35
-
36
- private void startFling(MotionEvent event) {
37
- mStartX = event.getRawX();
38
- mStartY = event.getRawY();
39
- begin();
40
- mMaxNumberOfPointersSimultaneously = 1;
41
- if (mHandler == null) {
42
- mHandler = new Handler();
43
- } else {
44
- mHandler.removeCallbacksAndMessages(null);
45
- }
46
- mHandler.postDelayed(mFailDelayed, mMaxDurationMs);
47
- }
48
-
49
- private boolean tryEndFling(MotionEvent event) {
50
- if (mMaxNumberOfPointersSimultaneously == mNumberOfPointersRequired &&
51
- (((mDirection & DIRECTION_RIGHT) != 0 &&
52
- event.getRawX() - mStartX > mMinAcceptableDelta) ||
53
- ((mDirection & DIRECTION_LEFT) !=0 &&
54
- mStartX - event.getRawX() > mMinAcceptableDelta) ||
55
- ((mDirection & DIRECTION_UP) !=0 &&
56
- mStartY - event.getRawY() > mMinAcceptableDelta) ||
57
- ((mDirection & DIRECTION_DOWN) !=0 &&
58
- event.getRawY() - mStartY > mMinAcceptableDelta))) {
59
- mHandler.removeCallbacksAndMessages(null);
60
- activate();
61
- end();
62
- return true;
63
- } else {
64
- return false;
65
- }
66
- }
67
-
68
- private void endFling(MotionEvent event) {
69
- if (!tryEndFling(event)) {
70
- fail();
71
- }
72
-
73
- }
74
-
75
- @Override
76
- protected void onHandle(MotionEvent event) {
77
- int state = getState();
78
-
79
- if (state == STATE_UNDETERMINED) {
80
- startFling(event);
81
- }
82
-
83
-
84
- if (state == STATE_BEGAN) {
85
- tryEndFling(event);
86
- if (event.getPointerCount() > mMaxNumberOfPointersSimultaneously) {
87
- mMaxNumberOfPointersSimultaneously = event.getPointerCount();
88
- }
89
-
90
- int action = event.getActionMasked();
91
- if (action == MotionEvent.ACTION_UP) {
92
- endFling(event);
93
- }
94
- }
95
- }
96
-
97
- @Override
98
- protected void onCancel() {
99
- if (mHandler != null) {
100
- mHandler.removeCallbacksAndMessages(null);
101
- }
102
- }
103
-
104
- @Override
105
- protected void onReset() {
106
- if (mHandler != null) {
107
- mHandler.removeCallbacksAndMessages(null);
108
- }
109
- }
110
- }
@@ -1,531 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- import android.view.MotionEvent;
4
- import android.view.View;
5
-
6
- import com.facebook.react.bridge.UiThreadUtil;
7
-
8
- import java.util.Arrays;
9
-
10
- public class GestureHandler<T extends GestureHandler> {
11
-
12
- public static final int STATE_UNDETERMINED = 0;
13
- public static final int STATE_FAILED = 1;
14
- public static final int STATE_BEGAN = 2;
15
- public static final int STATE_CANCELLED = 3;
16
- public static final int STATE_ACTIVE = 4;
17
- public static final int STATE_END = 5;
18
-
19
- public static final float HIT_SLOP_NONE = Float.NaN;
20
-
21
- private static final int HIT_SLOP_LEFT_IDX = 0;
22
- private static final int HIT_SLOP_TOP_IDX = 1;
23
- private static final int HIT_SLOP_RIGHT_IDX = 2;
24
- private static final int HIT_SLOP_BOTTOM_IDX = 3;
25
- private static final int HIT_SLOP_WIDTH_IDX = 4;
26
- private static final int HIT_SLOP_HEIGHT_IDX = 5;
27
-
28
- public static final int DIRECTION_RIGHT = 1;
29
- public static final int DIRECTION_LEFT = 2;
30
- public static final int DIRECTION_UP = 4;
31
- public static final int DIRECTION_DOWN = 8;
32
-
33
- private static int MAX_POINTERS_COUNT = 12;
34
- private static MotionEvent.PointerProperties[] sPointerProps;
35
- private static MotionEvent.PointerCoords[] sPointerCoords;
36
-
37
- private static void initPointerProps(int size) {
38
- if (sPointerProps == null) {
39
- sPointerProps = new MotionEvent.PointerProperties[MAX_POINTERS_COUNT];
40
- sPointerCoords = new MotionEvent.PointerCoords[MAX_POINTERS_COUNT];
41
- }
42
- for (; size > 0 && sPointerProps[size - 1] == null; size--) {
43
- sPointerProps[size - 1] = new MotionEvent.PointerProperties();
44
- sPointerCoords[size - 1] = new MotionEvent.PointerCoords();
45
- }
46
- }
47
-
48
- private final int[] mTrackedPointerIDs = new int[MAX_POINTERS_COUNT];
49
- private int mTrackedPointersCount = 0;
50
-
51
- private int mTag;
52
- private View mView;
53
- private int mState = STATE_UNDETERMINED;
54
- private float mX, mY;
55
- private boolean mWithinBounds;
56
- private boolean mEnabled = true;
57
- private float mHitSlop[];
58
-
59
- private static short sNextEventCoalescingKey = 0;
60
- private short mEventCoalescingKey;
61
-
62
- private float mLastX, mLastY;
63
- private float mLastEventOffsetX, mLastEventOffsetY;
64
-
65
- private boolean mShouldCancelWhenOutside;
66
- private int mNumberOfPointers = 0;
67
-
68
- private GestureHandlerOrchestrator mOrchestrator;
69
- private OnTouchEventListener<T> mListener;
70
- private GestureHandlerInteractionController mInteractionController;
71
- /*package*/ int mActivationIndex; // set and accessed only by the orchestrator
72
- /*package*/ boolean mIsActive; // set and accessed only by the orchestrator
73
- /*package*/ boolean mIsAwaiting; // set and accessed only by the orchestrator
74
-
75
- private static boolean hitSlopSet(float value) {
76
- return !Float.isNaN(value);
77
- }
78
-
79
- /*package*/ void dispatchStateChange(int newState, int prevState) {
80
- if (mListener != null) {
81
- mListener.onStateChange((T) this, newState, prevState);
82
- }
83
- }
84
-
85
- /*package*/ void dispatchTouchEvent(MotionEvent event) {
86
- if (mListener != null) {
87
- mListener.onTouchEvent((T) this, event);
88
- }
89
- }
90
-
91
- public boolean hasCommonPointers(GestureHandler other) {
92
- for (int i = 0; i < mTrackedPointerIDs.length; i++) {
93
- if (mTrackedPointerIDs[i] != -1 && other.mTrackedPointerIDs[i] != -1) {
94
- return true;
95
- }
96
- }
97
- return false;
98
- }
99
-
100
- public T setShouldCancelWhenOutside(boolean shouldCancelWhenOutside) {
101
- mShouldCancelWhenOutside = shouldCancelWhenOutside;
102
- return (T) this;
103
- }
104
-
105
- public T setEnabled(boolean enabled) {
106
- if (mView != null) {
107
- // If view is set then handler is in "active" state. In that case we want to "cancel" handler
108
- // when it changes enabled state so that it gets cleared from the orchestrator
109
- UiThreadUtil.runOnUiThread(new Runnable() {
110
- @Override
111
- public void run() {
112
- cancel();
113
- }
114
- });
115
- }
116
- mEnabled = enabled;
117
- return (T) this;
118
- }
119
-
120
- public boolean isEnabled() {
121
- return mEnabled;
122
- }
123
-
124
- public T setHitSlop(float leftPad, float topPad, float rightPad, float bottomPad, float width, float height) {
125
- if (mHitSlop == null) {
126
- mHitSlop = new float[6];
127
- }
128
- mHitSlop[HIT_SLOP_LEFT_IDX] = leftPad;
129
- mHitSlop[HIT_SLOP_TOP_IDX] = topPad;
130
- mHitSlop[HIT_SLOP_RIGHT_IDX] = rightPad;
131
- mHitSlop[HIT_SLOP_BOTTOM_IDX] = bottomPad;
132
- mHitSlop[HIT_SLOP_WIDTH_IDX] = width;
133
- mHitSlop[HIT_SLOP_HEIGHT_IDX] = height;
134
- if (hitSlopSet(width) && hitSlopSet(leftPad) && hitSlopSet(rightPad)) {
135
- throw new IllegalArgumentException("Cannot have all of left, right and width defined");
136
- }
137
- if (hitSlopSet(width) && !hitSlopSet(leftPad) && !hitSlopSet(rightPad)) {
138
- throw new IllegalArgumentException("When width is set one of left or right pads need to be defined");
139
- }
140
- if (hitSlopSet(height) && hitSlopSet(bottomPad) && hitSlopSet(topPad)) {
141
- throw new IllegalArgumentException("Cannot have all of top, bottom and height defined");
142
- }
143
- if (hitSlopSet(height) && !hitSlopSet(bottomPad) && !hitSlopSet(topPad)) {
144
- throw new IllegalArgumentException("When height is set one of top or bottom pads need to be defined");
145
- }
146
- return (T) this;
147
- }
148
-
149
- public T setHitSlop(float padding) {
150
- return setHitSlop(padding, padding, padding, padding, HIT_SLOP_NONE, HIT_SLOP_NONE);
151
- }
152
-
153
- public T setInteractionController(GestureHandlerInteractionController controller) {
154
- mInteractionController = controller;
155
- return (T) this;
156
- }
157
-
158
- public void setTag(int tag) {
159
- mTag = tag;
160
- }
161
-
162
- public int getTag() {
163
- return mTag;
164
- }
165
-
166
- public View getView() {
167
- return mView;
168
- }
169
-
170
- public float getX() {
171
- return mX;
172
- }
173
-
174
- public float getY() {
175
- return mY;
176
- }
177
-
178
- public int getNumberOfPointers() {
179
- return mNumberOfPointers;
180
- }
181
-
182
- public boolean isWithinBounds() {
183
- return mWithinBounds;
184
- }
185
-
186
- public short getEventCoalescingKey() {
187
- return mEventCoalescingKey;
188
- }
189
-
190
- public final void prepare(View view, GestureHandlerOrchestrator orchestrator) {
191
- if (mView != null || mOrchestrator != null) {
192
- throw new IllegalStateException("Already prepared or hasn't been reset");
193
- }
194
- Arrays.fill(mTrackedPointerIDs, -1);
195
- mTrackedPointersCount = 0;
196
- mState = STATE_UNDETERMINED;
197
-
198
- mView = view;
199
- mOrchestrator = orchestrator;
200
- }
201
-
202
- private int findNextLocalPointerId() {
203
- int localPointerId = 0;
204
- for (; localPointerId < mTrackedPointersCount; localPointerId++) {
205
- int i = 0;
206
- for (; i < mTrackedPointerIDs.length; i++) {
207
- if (mTrackedPointerIDs[i] == localPointerId) {
208
- break;
209
- }
210
- }
211
- if (i == mTrackedPointerIDs.length) {
212
- return localPointerId;
213
- }
214
- }
215
- return localPointerId;
216
- }
217
-
218
- public void startTrackingPointer(int pointerId) {
219
- if (mTrackedPointerIDs[pointerId] == -1) {
220
- mTrackedPointerIDs[pointerId] = findNextLocalPointerId();
221
- mTrackedPointersCount++;
222
- }
223
- }
224
-
225
- public void stopTrackingPointer(int pointerId) {
226
- if (mTrackedPointerIDs[pointerId] != -1) {
227
- mTrackedPointerIDs[pointerId] = -1;
228
- mTrackedPointersCount--;
229
- }
230
- }
231
-
232
- private boolean needAdapt(MotionEvent event) {
233
- if (event.getPointerCount() != mTrackedPointersCount) {
234
- return true;
235
- }
236
- for (int i = 0; i < mTrackedPointerIDs.length; i++) {
237
- if (mTrackedPointerIDs[i] != -1 && mTrackedPointerIDs[i] != i) {
238
- return true;
239
- }
240
- }
241
- return false;
242
- }
243
-
244
- private MotionEvent adaptEvent(MotionEvent event) {
245
- if (!needAdapt(event)) {
246
- return event;
247
- }
248
- int action = event.getActionMasked();
249
- int actionIndex = -1;
250
- if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_POINTER_DOWN) {
251
- actionIndex = event.getActionIndex();
252
- int actionPointer = event.getPointerId(actionIndex);
253
- if (mTrackedPointerIDs[actionPointer] != -1) {
254
- action = mTrackedPointersCount == 1 ? MotionEvent.ACTION_DOWN : MotionEvent.ACTION_POINTER_DOWN;
255
- } else {
256
- action = MotionEvent.ACTION_MOVE;
257
- }
258
- } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) {
259
- actionIndex = event.getActionIndex();
260
- int actionPointer = event.getPointerId(actionIndex);
261
- if (mTrackedPointerIDs[actionPointer] != -1) {
262
- action = mTrackedPointersCount == 1 ? MotionEvent.ACTION_UP : MotionEvent.ACTION_POINTER_UP;
263
- } else {
264
- action = MotionEvent.ACTION_MOVE;
265
- }
266
- }
267
- initPointerProps(mTrackedPointersCount);
268
- int count = 0;
269
- float oldX = event.getX();
270
- float oldY = event.getY();
271
- event.setLocation(event.getRawX(), event.getRawY());
272
- for (int index = 0, size = event.getPointerCount(); index < size; index++) {
273
- int origPointerId = event.getPointerId(index);
274
- if (mTrackedPointerIDs[origPointerId] != -1) {
275
- event.getPointerProperties(index, sPointerProps[count]);
276
- sPointerProps[count].id = mTrackedPointerIDs[origPointerId];
277
- event.getPointerCoords(index, sPointerCoords[count]);
278
- if (index == actionIndex) {
279
- action = action | (count << MotionEvent.ACTION_POINTER_INDEX_SHIFT);
280
- }
281
- count++;
282
- }
283
- }
284
- MotionEvent result = MotionEvent.obtain(
285
- event.getDownTime(),
286
- event.getEventTime(),
287
- action,
288
- count,
289
- sPointerProps, /* props are copied and hence it is safe to use static array here */
290
- sPointerCoords, /* same applies to coords */
291
- event.getMetaState(),
292
- event.getButtonState(),
293
- event.getXPrecision(),
294
- event.getYPrecision(),
295
- event.getDeviceId(),
296
- event.getEdgeFlags(),
297
- event.getSource(),
298
- event.getFlags());
299
- event.setLocation(oldX, oldY);
300
- result.setLocation(oldX, oldY);
301
- return result;
302
- }
303
-
304
- public final void handle(MotionEvent origEvent) {
305
- if (!mEnabled || mState == STATE_CANCELLED || mState == STATE_FAILED
306
- || mState == STATE_END || mTrackedPointersCount < 1) {
307
- return;
308
- }
309
- MotionEvent event = adaptEvent(origEvent);
310
- mX = event.getX();
311
- mY = event.getY();
312
- mNumberOfPointers = event.getPointerCount();
313
-
314
- mWithinBounds = isWithinBounds(mView, mX, mY);
315
- if (mShouldCancelWhenOutside && !mWithinBounds) {
316
- if (mState == STATE_ACTIVE) {
317
- cancel();
318
- } else if (mState == STATE_BEGAN) {
319
- fail();
320
- }
321
- return;
322
- }
323
-
324
- mLastX = GestureUtils.getLastPointerX(event, true);
325
- mLastY = GestureUtils.getLastPointerY(event, true);
326
- mLastEventOffsetX = event.getRawX() - event.getX();
327
- mLastEventOffsetY = event.getRawY() - event.getY();
328
-
329
- onHandle(event);
330
- if (event != origEvent) {
331
- event.recycle();
332
- }
333
- }
334
-
335
- private void moveToState(int newState) {
336
- UiThreadUtil.assertOnUiThread();
337
- if (mState == newState) {
338
- return;
339
- }
340
- int oldState = mState;
341
- mState = newState;
342
-
343
- if (mState == STATE_ACTIVE) {
344
- // Generate a unique coalescing-key each time the gesture-handler becomes active. All events will have
345
- // the same coalescing-key allowing EventDispatcher to coalesce RNGestureHandlerEvents when events are
346
- // generated faster than they can be treated by JS thread
347
- mEventCoalescingKey = sNextEventCoalescingKey++;
348
- }
349
-
350
- mOrchestrator.onHandlerStateChange(this, newState, oldState);
351
-
352
- onStateChange(newState, oldState);
353
- }
354
-
355
- public boolean wantEvents() {
356
- return mEnabled && mState != STATE_FAILED && mState != STATE_CANCELLED
357
- && mState != STATE_END && mTrackedPointersCount > 0;
358
- }
359
-
360
- public int getState() {
361
- return mState;
362
- }
363
-
364
- public boolean shouldRequireToWaitForFailure(GestureHandler handler) {
365
- if (handler != this && mInteractionController != null) {
366
- return mInteractionController.shouldRequireHandlerToWaitForFailure(this, handler);
367
- }
368
- return false;
369
- }
370
-
371
- public boolean shouldWaitForHandlerFailure(GestureHandler handler) {
372
- if (handler != this && mInteractionController != null) {
373
- return mInteractionController.shouldWaitForHandlerFailure(this, handler);
374
- }
375
- return false;
376
- }
377
-
378
- public boolean shouldRecognizeSimultaneously(GestureHandler handler) {
379
- if (handler == this) {
380
- return true;
381
- }
382
- if (mInteractionController != null) {
383
- return mInteractionController.shouldRecognizeSimultaneously(this, handler);
384
- }
385
- return false;
386
- }
387
-
388
- public boolean shouldBeCancelledBy(GestureHandler handler) {
389
- if (handler == this) {
390
- return false;
391
- }
392
- if (mInteractionController != null) {
393
- return mInteractionController.shouldHandlerBeCancelledBy(this, handler);
394
- }
395
- return false;
396
- }
397
-
398
- public boolean isWithinBounds(View view, float posX, float posY) {
399
- float left = 0;
400
- float top = 0;
401
- float right = view.getWidth();
402
- float bottom = view.getHeight();
403
- if (mHitSlop != null) {
404
- float padLeft = mHitSlop[HIT_SLOP_LEFT_IDX];
405
- float padTop = mHitSlop[HIT_SLOP_TOP_IDX];
406
- float padRight = mHitSlop[HIT_SLOP_RIGHT_IDX];
407
- float padBottom = mHitSlop[HIT_SLOP_BOTTOM_IDX];
408
- if (hitSlopSet(padLeft)) {
409
- left -= padLeft;
410
- }
411
- if (hitSlopSet(padTop)) {
412
- top -= padTop;
413
- }
414
- if (hitSlopSet(padRight)) {
415
- right += padRight;
416
- }
417
- if (hitSlopSet(padBottom)) {
418
- bottom += padBottom;
419
- }
420
-
421
- float width = mHitSlop[HIT_SLOP_WIDTH_IDX];
422
- float height= mHitSlop[HIT_SLOP_HEIGHT_IDX];
423
- if (hitSlopSet(width)) {
424
- if (!hitSlopSet(padLeft)) {
425
- left = right - width;
426
- } else if (!hitSlopSet(padRight)) {
427
- right = left + width;
428
- }
429
- }
430
- if (hitSlopSet(height)) {
431
- if (!hitSlopSet(padTop)) {
432
- top = bottom - height;
433
- } else if (!hitSlopSet(padBottom)) {
434
- bottom = top + height;
435
- }
436
- }
437
- }
438
- return posX >= left && posX <= right && posY >= top && posY <= bottom;
439
- }
440
-
441
- public final void cancel() {
442
- if (mState == STATE_ACTIVE || mState == STATE_UNDETERMINED || mState == STATE_BEGAN) {
443
- onCancel();
444
- moveToState(STATE_CANCELLED);
445
- }
446
- }
447
-
448
- public final void fail() {
449
- if (mState == STATE_ACTIVE || mState == STATE_UNDETERMINED || mState == STATE_BEGAN) {
450
- moveToState(STATE_FAILED);
451
- }
452
- }
453
-
454
- public final void activate() {
455
- if (mState == STATE_UNDETERMINED || mState == STATE_BEGAN) {
456
- moveToState(STATE_ACTIVE);
457
- }
458
- }
459
-
460
- public final void begin() {
461
- if (mState == STATE_UNDETERMINED) {
462
- moveToState(STATE_BEGAN);
463
- }
464
- }
465
-
466
- public final void end() {
467
- if (mState == STATE_BEGAN || mState == STATE_ACTIVE) {
468
- moveToState(STATE_END);
469
- }
470
- }
471
-
472
- protected void onHandle(MotionEvent event) {
473
- moveToState(STATE_FAILED);
474
- }
475
-
476
- protected void onStateChange(int newState, int previousState) {
477
- }
478
-
479
- protected void onReset() {
480
- }
481
-
482
- protected void onCancel() {
483
- }
484
-
485
- public final void reset() {
486
- mView = null;
487
- mOrchestrator = null;
488
- Arrays.fill(mTrackedPointerIDs, -1);
489
- mTrackedPointersCount = 0;
490
- onReset();
491
- }
492
-
493
- public static String stateToString(int state) {
494
- switch (state) {
495
- case STATE_UNDETERMINED: return "UNDETERMINED";
496
- case STATE_ACTIVE: return "ACTIVE";
497
- case STATE_FAILED: return "FAILED";
498
- case STATE_BEGAN: return "BEGIN";
499
- case STATE_CANCELLED: return "CANCELLED";
500
- case STATE_END: return "END";
501
- }
502
- return null;
503
- }
504
-
505
- public GestureHandler setOnTouchEventListener(OnTouchEventListener<T> listener) {
506
- mListener = listener;
507
- return this;
508
- }
509
-
510
- @Override
511
- public String toString() {
512
- String viewString = mView == null ? null : mView.getClass().getSimpleName();
513
- return this.getClass().getSimpleName() + "@[" + mTag + "]:" + viewString;
514
- }
515
-
516
- public float getLastAbsolutePositionX() {
517
- return mLastX;
518
- }
519
-
520
- public float getLastAbsolutePositionY() {
521
- return mLastY;
522
- }
523
-
524
- public float getLastRelativePositionX() {
525
- return mLastX - mLastEventOffsetX;
526
- }
527
-
528
- public float getLastRelativePositionY() {
529
- return mLastY - mLastEventOffsetY;
530
- }
531
- }
@@ -1,8 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- public interface GestureHandlerInteractionController {
4
- boolean shouldWaitForHandlerFailure(GestureHandler handler, GestureHandler otherHandler);
5
- boolean shouldRequireHandlerToWaitForFailure(GestureHandler handler, GestureHandler otherHandler);
6
- boolean shouldRecognizeSimultaneously(GestureHandler handler, GestureHandler otherHandler);
7
- boolean shouldHandlerBeCancelledBy(GestureHandler handler, GestureHandler otherHandler);
8
- }