react-native-gesture-handler 1.10.3 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (384) hide show
  1. package/README.md +10 -8
  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 +744 -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 +596 -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 +292 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +90 -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 +81 -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/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  53. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  54. package/ios/RNGestureHandlerEvents.h +9 -0
  55. package/ios/RNGestureHandlerEvents.m +34 -0
  56. package/ios/RNGestureHandlerManager.h +7 -0
  57. package/ios/RNGestureHandlerManager.m +62 -34
  58. package/ios/RNGestureHandlerModule.m +39 -3
  59. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  60. package/ios/RNGestureHandlerPointerTracker.m +237 -0
  61. package/ios/RNGestureHandlerRegistry.h +1 -0
  62. package/ios/RNGestureHandlerRegistry.m +10 -0
  63. package/ios/RNGestureHandlerStateManager.h +5 -0
  64. package/ios/RNManualActivationRecognizer.h +10 -0
  65. package/ios/RNManualActivationRecognizer.m +80 -0
  66. package/ios/RNRootViewGestureRecognizer.m +1 -1
  67. package/ios/RNTouchEventType.h +9 -0
  68. package/lib/commonjs/EventType.js +16 -0
  69. package/lib/commonjs/EventType.js.map +1 -0
  70. package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
  71. package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
  72. package/lib/commonjs/GestureHandlerRootView.js +11 -3
  73. package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.js +3 -1
  75. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  76. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  77. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  78. package/lib/commonjs/components/DrawerLayout.js +41 -37
  79. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  80. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  81. package/lib/commonjs/components/GestureComponents.js +31 -12
  82. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  83. package/lib/commonjs/components/Swipeable.js +10 -6
  84. package/lib/commonjs/components/Swipeable.js.map +1 -1
  85. package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
  86. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  87. package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
  88. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  89. package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
  90. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  91. package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
  92. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  93. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
  94. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  95. package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
  96. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  97. package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
  98. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  99. package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
  100. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  101. package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
  102. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  103. package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
  104. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  105. package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
  106. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  107. package/lib/commonjs/handlers/createHandler.js +65 -84
  108. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  109. package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
  110. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  111. package/lib/commonjs/handlers/gestures/GestureDetector.js +440 -0
  112. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -0
  114. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  115. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  116. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  117. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
  118. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gesture.js +193 -0
  120. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  121. package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
  122. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  123. package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
  124. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  125. package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
  126. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  127. package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
  128. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  129. package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
  130. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  131. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  132. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  133. package/lib/commonjs/handlers/gestures/panGesture.js +144 -0
  134. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
  136. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  137. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
  138. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  139. package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
  140. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  141. package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
  142. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  143. package/lib/commonjs/handlers/handlersRegistry.js +31 -0
  144. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  145. package/lib/commonjs/index.js +40 -8
  146. package/lib/commonjs/index.js.map +1 -1
  147. package/lib/commonjs/init.js +13 -0
  148. package/lib/commonjs/init.js.map +1 -0
  149. package/lib/commonjs/mocks.js +31 -2
  150. package/lib/commonjs/mocks.js.map +1 -1
  151. package/lib/commonjs/utils.js +15 -0
  152. package/lib/commonjs/utils.js.map +1 -0
  153. package/lib/commonjs/web/Errors.js +1 -1
  154. package/lib/commonjs/web/Errors.js.map +1 -1
  155. package/lib/commonjs/web/GestureHandler.js +4 -6
  156. package/lib/commonjs/web/GestureHandler.js.map +1 -1
  157. package/lib/commonjs/web/NodeManager.js +8 -2
  158. package/lib/commonjs/web/NodeManager.js.map +1 -1
  159. package/lib/module/EventType.js +8 -0
  160. package/lib/module/EventType.js.map +1 -0
  161. package/lib/module/GestureHandlerRootView.android.js +2 -14
  162. package/lib/module/GestureHandlerRootView.android.js.map +1 -1
  163. package/lib/module/GestureHandlerRootView.js +5 -1
  164. package/lib/module/GestureHandlerRootView.js.map +1 -1
  165. package/lib/module/RNGestureHandlerModule.js +3 -1
  166. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  167. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  168. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  169. package/lib/module/components/DrawerLayout.js +43 -40
  170. package/lib/module/components/DrawerLayout.js.map +1 -1
  171. package/lib/module/components/GestureButtons.js.map +1 -1
  172. package/lib/module/components/GestureComponents.js +29 -11
  173. package/lib/module/components/GestureComponents.js.map +1 -1
  174. package/lib/module/components/Swipeable.js +9 -6
  175. package/lib/module/components/Swipeable.js.map +1 -1
  176. package/lib/module/components/touchables/GenericTouchable.js +2 -1
  177. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  178. package/lib/module/components/touchables/TouchableOpacity.js +1 -1
  179. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  180. package/lib/module/gestureHandlerRootHOC.js +1 -1
  181. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  182. package/lib/module/handlers/FlingGestureHandler.js +10 -0
  183. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  184. package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
  185. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  186. package/lib/module/handlers/LongPressGestureHandler.js +10 -0
  187. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  188. package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
  189. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  190. package/lib/module/handlers/PanGestureHandler.js +106 -0
  191. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  192. package/lib/module/handlers/PinchGestureHandler.js +9 -0
  193. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  194. package/lib/module/handlers/RotationGestureHandler.js +9 -0
  195. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  196. package/lib/module/handlers/TapGestureHandler.js +10 -0
  197. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  198. package/lib/module/handlers/createHandler.js +55 -77
  199. package/lib/module/handlers/createHandler.js.map +1 -1
  200. package/lib/module/handlers/gestureHandlerCommon.js +66 -0
  201. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  202. package/lib/module/handlers/gestures/GestureDetector.js +402 -0
  203. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  204. package/lib/module/handlers/gestures/eventReceiver.js +120 -0
  205. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  206. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  207. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  208. package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
  209. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gesture.js +175 -0
  211. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  212. package/lib/module/handlers/gestures/gestureComposition.js +79 -0
  213. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  214. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  215. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  216. package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
  217. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  218. package/lib/module/handlers/gestures/longPressGesture.js +24 -0
  219. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  220. package/lib/module/handlers/gestures/manualGesture.js +22 -0
  221. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  222. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  223. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  224. package/lib/module/handlers/gestures/panGesture.js +135 -0
  225. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/pinchGesture.js +36 -0
  227. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  228. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
  229. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  230. package/lib/module/handlers/gestures/rotationGesture.js +36 -0
  231. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  232. package/lib/module/handlers/gestures/tapGesture.js +49 -0
  233. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  234. package/lib/module/handlers/handlersRegistry.js +16 -0
  235. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  236. package/lib/module/index.js +11 -1
  237. package/lib/module/index.js.map +1 -1
  238. package/lib/module/init.js +5 -0
  239. package/lib/module/init.js.map +1 -0
  240. package/lib/module/mocks.js +31 -2
  241. package/lib/module/mocks.js.map +1 -1
  242. package/lib/module/utils.js +8 -0
  243. package/lib/module/utils.js.map +1 -0
  244. package/lib/module/web/Errors.js +1 -1
  245. package/lib/module/web/Errors.js.map +1 -1
  246. package/lib/module/web/GestureHandler.js +4 -6
  247. package/lib/module/web/GestureHandler.js.map +1 -1
  248. package/lib/module/web/NodeManager.js +8 -2
  249. package/lib/module/web/NodeManager.js.map +1 -1
  250. package/lib/typescript/EventType.d.ts +8 -0
  251. package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
  252. package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
  253. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
  254. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  255. package/lib/typescript/components/DrawerLayout.d.ts +50 -1
  256. package/lib/typescript/components/GestureButtons.d.ts +36 -0
  257. package/lib/typescript/components/GestureComponents.d.ts +8 -35
  258. package/lib/typescript/components/Swipeable.d.ts +73 -6
  259. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
  260. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  261. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  262. package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
  263. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
  264. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
  265. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
  266. package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
  267. package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
  268. package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
  269. package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
  270. package/lib/typescript/handlers/createHandler.d.ts +1 -1
  271. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
  272. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
  273. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
  274. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
  275. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  276. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +16 -0
  277. package/lib/typescript/handlers/gestures/gesture.d.ts +97 -0
  278. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  279. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
  280. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  281. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  282. package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
  283. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  284. package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
  285. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
  286. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  287. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
  288. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  289. package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
  290. package/lib/typescript/index.d.ts +29 -2
  291. package/lib/typescript/init.d.ts +1 -0
  292. package/lib/typescript/mocks.d.ts +21 -2
  293. package/lib/typescript/utils.d.ts +1 -0
  294. package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
  295. package/lib/typescript/web/GestureHandler.d.ts +0 -1
  296. package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
  297. package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
  298. package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
  299. package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
  300. package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
  301. package/package.json +8 -5
  302. package/src/EventType.ts +10 -0
  303. package/src/GestureHandlerRootView.android.tsx +9 -25
  304. package/src/GestureHandlerRootView.tsx +11 -2
  305. package/src/RNGestureHandlerModule.ts +5 -1
  306. package/src/RNGestureHandlerModule.web.ts +1 -0
  307. package/src/components/DrawerLayout.tsx +114 -41
  308. package/src/components/GestureButtons.tsx +45 -5
  309. package/src/components/GestureComponents.tsx +47 -41
  310. package/src/components/Swipeable.tsx +108 -21
  311. package/src/components/touchables/GenericTouchable.tsx +2 -1
  312. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  313. package/src/handlers/FlingGestureHandler.ts +57 -0
  314. package/src/handlers/ForceTouchGestureHandler.ts +83 -0
  315. package/src/handlers/LongPressGestureHandler.ts +84 -0
  316. package/src/handlers/NativeViewGestureHandler.ts +31 -7
  317. package/src/handlers/PanGestureHandler.ts +321 -0
  318. package/src/handlers/PinchGestureHandler.ts +46 -0
  319. package/src/handlers/RotationGestureHandler.ts +46 -0
  320. package/src/handlers/TapGestureHandler.ts +90 -0
  321. package/src/handlers/createHandler.ts +67 -79
  322. package/src/handlers/gestureHandlerCommon.ts +185 -0
  323. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  324. package/src/handlers/gestures/GestureDetector.tsx +519 -0
  325. package/src/handlers/gestures/eventReceiver.ts +151 -0
  326. package/src/handlers/gestures/flingGesture.ts +27 -0
  327. package/src/handlers/gestures/forceTouchGesture.ts +74 -0
  328. package/src/handlers/gestures/gesture.ts +292 -0
  329. package/src/handlers/gestures/gestureComposition.ts +109 -0
  330. package/src/handlers/gestures/gestureObjects.ts +79 -0
  331. package/src/handlers/gestures/gestureStateManager.ts +60 -0
  332. package/src/handlers/gestures/longPressGesture.ts +27 -0
  333. package/src/handlers/gestures/manualGesture.ts +31 -0
  334. package/src/handlers/gestures/nativeGesture.ts +27 -0
  335. package/src/handlers/gestures/panGesture.ts +147 -0
  336. package/src/handlers/gestures/pinchGesture.ts +51 -0
  337. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  338. package/src/handlers/gestures/rotationGesture.ts +51 -0
  339. package/src/handlers/gestures/tapGesture.ts +52 -0
  340. package/src/handlers/handlersRegistry.ts +22 -0
  341. package/src/index.ts +57 -17
  342. package/src/init.ts +5 -0
  343. package/src/mocks.ts +42 -2
  344. package/src/utils.ts +7 -0
  345. package/src/web/GestureHandler.ts +1 -2
  346. package/src/web/NodeManager.ts +5 -0
  347. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
  348. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
  349. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
  350. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
  351. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
  352. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
  353. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
  354. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
  355. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
  356. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
  357. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
  358. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
  359. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
  360. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
  361. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
  362. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
  363. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
  364. package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
  365. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
  366. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
  367. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
  368. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
  369. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
  370. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
  371. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
  372. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
  373. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
  374. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
  375. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
  376. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
  377. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
  378. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
  379. package/lib/commonjs/handlers/gestureHandlers.js +0 -236
  380. package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
  381. package/lib/module/handlers/gestureHandlers.js +0 -216
  382. package/lib/module/handlers/gestureHandlers.js.map +0 -1
  383. package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
  384. package/src/handlers/gestureHandlers.ts +0 -511
@@ -1,296 +0,0 @@
1
- package com.swmansion.gesturehandler.react;
2
-
3
- import android.annotation.SuppressLint;
4
- import android.annotation.TargetApi;
5
- import android.content.Context;
6
- import android.content.res.ColorStateList;
7
- import android.graphics.Color;
8
- import android.graphics.drawable.Drawable;
9
- import android.graphics.drawable.LayerDrawable;
10
- import android.graphics.drawable.PaintDrawable;
11
- import android.graphics.drawable.RippleDrawable;
12
- import android.os.Build;
13
- import android.util.TypedValue;
14
- import android.view.MotionEvent;
15
- import android.view.View;
16
- import android.view.ViewGroup;
17
-
18
- import com.facebook.react.bridge.SoftAssertions;
19
- import com.facebook.react.uimanager.PixelUtil;
20
- import com.facebook.react.uimanager.ThemedReactContext;
21
- import com.facebook.react.uimanager.ViewGroupManager;
22
- import com.facebook.react.uimanager.ViewProps;
23
- import com.facebook.react.uimanager.annotations.ReactProp;
24
-
25
- public class RNGestureHandlerButtonViewManager extends
26
- ViewGroupManager<RNGestureHandlerButtonViewManager.ButtonViewGroup> {
27
-
28
- static class ButtonViewGroup extends ViewGroup {
29
-
30
- static TypedValue sResolveOutValue = new TypedValue();
31
- static ButtonViewGroup sResponder;
32
- static OnClickListener sDummyClickListener = new OnClickListener() {
33
- @Override
34
- public void onClick(View v) { }
35
- };
36
-
37
- int mBackgroundColor = Color.TRANSPARENT;
38
- // Using object because of handling null representing no value set.
39
- Integer mRippleColor;
40
- Integer mRippleRadius;
41
- boolean mUseForeground = false;
42
- boolean mUseBorderless = false;
43
- float mBorderRadius = 0;
44
- boolean mNeedBackgroundUpdate = false;
45
- long mLastEventTime = 0;
46
- public static final String SELECTABLE_ITEM_BACKGROUND = "selectableItemBackground";
47
- public static final String SELECTABLE_ITEM_BACKGROUND_BORDERLESS = "selectableItemBackgroundBorderless";
48
-
49
-
50
- public ButtonViewGroup(Context context) {
51
- super(context);
52
-
53
- // we attach empty click listener to trigger tap sounds (see View#performClick())
54
- setOnClickListener(sDummyClickListener);
55
- setClickable(true);
56
- setFocusable(true);
57
-
58
- mNeedBackgroundUpdate = true;
59
- }
60
-
61
- @Override
62
- public void setBackgroundColor(int color) {
63
- mBackgroundColor = color;
64
- mNeedBackgroundUpdate = true;
65
- }
66
-
67
- public void setRippleColor(Integer color) {
68
- mRippleColor = color;
69
- mNeedBackgroundUpdate = true;
70
- }
71
-
72
- public void setRippleRadius(Integer radius) {
73
- mRippleRadius = radius;
74
- mNeedBackgroundUpdate = true;
75
- }
76
-
77
- public void setBorderRadius(float borderRadius) {
78
- mBorderRadius = borderRadius * getResources().getDisplayMetrics().density;
79
- mNeedBackgroundUpdate = true;
80
- }
81
-
82
- private Drawable applyRippleEffectWhenNeeded(Drawable selectable) {
83
- if (mRippleColor != null
84
- && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
85
- && selectable instanceof RippleDrawable) {
86
- int[][] states = new int[][]{ new int[]{ android.R.attr.state_enabled } };
87
- int[] colors = new int[]{ mRippleColor };
88
- ColorStateList colorStateList = new ColorStateList(states, colors);
89
- ((RippleDrawable) selectable).setColor(colorStateList);
90
- }
91
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
92
- && mRippleRadius != null
93
- && selectable instanceof RippleDrawable) {
94
- RippleDrawable rippleDrawable = (RippleDrawable) selectable;
95
- rippleDrawable.setRadius((int) PixelUtil.toPixelFromDIP(mRippleRadius));
96
- }
97
- return selectable;
98
- }
99
-
100
- @Override
101
- public boolean onInterceptTouchEvent(MotionEvent ev) {
102
- if (super.onInterceptTouchEvent(ev)) {
103
- return true;
104
- }
105
- // We call `onTouchEvent` and wait until button changes state to `pressed`, if it's pressed
106
- // we return true so that the gesture handler can activate.
107
- onTouchEvent(ev);
108
- return isPressed();
109
- }
110
-
111
- /**
112
- * Buttons in RN are wrapped in NativeViewGestureHandler which manages
113
- * calling onTouchEvent after activation of the handler. Problem is, in order to verify that
114
- * underlying button implementation is interested in receiving touches we have to call onTouchEvent
115
- * and check if button is pressed.
116
- *
117
- * This leads to invoking onTouchEvent twice which isn't idempotent in View - it calls OnClickListener
118
- * and plays sound effect if OnClickListener was set.
119
- *
120
- * To mitigate this behavior we use mLastEventTime variable to check that we already handled
121
- * the event in {@link #onInterceptTouchEvent(MotionEvent)}. We assume here that different events
122
- * will have different event times.
123
- *
124
- * Reference:
125
- * {@link com.swmansion.gesturehandler.NativeViewGestureHandler#onHandle(MotionEvent)} */
126
- @SuppressLint("ClickableViewAccessibility")
127
- @Override
128
- public boolean onTouchEvent(MotionEvent event) {
129
- long eventTime = event.getEventTime();
130
- if (mLastEventTime != eventTime || mLastEventTime == 0) {
131
- mLastEventTime = eventTime;
132
- return super.onTouchEvent(event);
133
- }
134
- return false;
135
- }
136
-
137
- private void updateBackground() {
138
- if (!mNeedBackgroundUpdate) {
139
- return;
140
- }
141
- mNeedBackgroundUpdate = false;
142
- if (mBackgroundColor == Color.TRANSPARENT) {
143
- // reset background
144
- setBackground(null);
145
- }
146
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
147
- // reset foreground
148
- setForeground(null);
149
- }
150
- if (mUseForeground && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
151
- setForeground(applyRippleEffectWhenNeeded(createSelectableDrawable()));
152
- if (mBackgroundColor != Color.TRANSPARENT) {
153
- setBackgroundColor(mBackgroundColor);
154
- }
155
- } else if (mBackgroundColor == Color.TRANSPARENT && mRippleColor == null) {
156
- setBackground(createSelectableDrawable());
157
- } else {
158
- PaintDrawable colorDrawable = new PaintDrawable(mBackgroundColor);
159
- Drawable selectable = createSelectableDrawable();
160
- if (mBorderRadius != 0) {
161
- // Radius-connected lines below ought to be considered
162
- // as a temporary solution. It do not allow to set
163
- // different radius on each corner. However, I suppose it's fairly
164
- // fine for button-related use cases.
165
- // Therefore it might be used as long as:
166
- // 1. ReactViewManager is not a generic class with a possibility to handle another ViewGroup
167
- // 2. There's no way to force native behavior of ReactViewGroup's superclass's onTouchEvent
168
- colorDrawable.setCornerRadius(mBorderRadius);
169
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
170
- && selectable instanceof RippleDrawable) {
171
- PaintDrawable mask = new PaintDrawable(Color.WHITE);
172
- mask.setCornerRadius(mBorderRadius);
173
- ((RippleDrawable) selectable).setDrawableByLayerId(android.R.id.mask, mask);
174
- }
175
- }
176
- applyRippleEffectWhenNeeded(selectable);
177
- LayerDrawable layerDrawable = new LayerDrawable(
178
- new Drawable[] { colorDrawable, selectable});
179
- setBackground(layerDrawable);
180
- }
181
- }
182
-
183
- public void setUseDrawableOnForeground(boolean useForeground) {
184
- mUseForeground = useForeground;
185
- mNeedBackgroundUpdate = true;
186
- }
187
-
188
- public void setUseBorderlessDrawable(boolean useBorderless) {
189
- mUseBorderless = useBorderless;
190
- }
191
-
192
- private Drawable createSelectableDrawable() {
193
- final int version = Build.VERSION.SDK_INT;
194
- String identifier = mUseBorderless && version >= 21 ? SELECTABLE_ITEM_BACKGROUND_BORDERLESS
195
- : SELECTABLE_ITEM_BACKGROUND;
196
- int attrID = getAttrId(getContext(), identifier);
197
- getContext().getTheme().resolveAttribute(attrID, sResolveOutValue, true);
198
- if (version >= 21) {
199
- return getResources().getDrawable(sResolveOutValue.resourceId, getContext().getTheme());
200
- } else {
201
- return getResources().getDrawable(sResolveOutValue.resourceId);
202
- }
203
- }
204
-
205
- @TargetApi(Build.VERSION_CODES.LOLLIPOP)
206
- private static int getAttrId(Context context, String attr) {
207
- SoftAssertions.assertNotNull(attr);
208
- if (SELECTABLE_ITEM_BACKGROUND.equals(attr)) {
209
- return android.R.attr.selectableItemBackground;
210
- } else if (SELECTABLE_ITEM_BACKGROUND_BORDERLESS.equals(attr)) {
211
- return android.R.attr.selectableItemBackgroundBorderless;
212
- } else {
213
- return context.getResources().getIdentifier(attr, "attr", "android");
214
- }
215
- }
216
-
217
- @Override
218
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
219
- // No-op
220
- }
221
-
222
- @Override
223
- public void drawableHotspotChanged(float x, float y) {
224
- if (sResponder == null || sResponder == this) {
225
- super.drawableHotspotChanged(x, y);
226
- }
227
- }
228
-
229
- @Override
230
- public void setPressed(boolean pressed) {
231
- if (pressed && sResponder == null) {
232
- // first button to be pressed grabs button responder
233
- sResponder = this;
234
- }
235
- if (!pressed || sResponder == this) {
236
- // we set pressed state only for current responder
237
- super.setPressed(pressed);
238
- }
239
- if (!pressed && sResponder == this) {
240
- // if the responder is no longer pressed we release button responder
241
- sResponder = null;
242
- }
243
- }
244
-
245
- @Override
246
- public void dispatchDrawableHotspotChanged(float x, float y) {
247
- // by default viewgroup would pass hotspot change events
248
- }
249
- }
250
-
251
- @Override
252
- public String getName() {
253
- return "RNGestureHandlerButton";
254
- }
255
-
256
- @Override
257
- public ButtonViewGroup createViewInstance(ThemedReactContext context) {
258
- return new ButtonViewGroup(context);
259
- }
260
-
261
- @TargetApi(Build.VERSION_CODES.M)
262
- @ReactProp(name = "foreground")
263
- public void setForeground(ButtonViewGroup view, boolean useDrawableOnForeground) {
264
- view.setUseDrawableOnForeground(useDrawableOnForeground);
265
- }
266
-
267
- @ReactProp(name = "borderless")
268
- public void setBorderless(ButtonViewGroup view, boolean useBorderlessDrawable) {
269
- view.setUseBorderlessDrawable(useBorderlessDrawable);
270
- }
271
-
272
- @ReactProp(name = "enabled")
273
- public void setEnabled(ButtonViewGroup view, boolean enabled) {
274
- view.setEnabled(enabled);
275
- }
276
-
277
- @ReactProp(name = ViewProps.BORDER_RADIUS)
278
- public void setBorderRadius(ButtonViewGroup view, float borderRadius) {
279
- view.setBorderRadius(borderRadius);
280
- }
281
-
282
- @ReactProp(name = "rippleColor")
283
- public void setRippleColor(ButtonViewGroup view, Integer rippleColor) {
284
- view.setRippleColor(rippleColor);
285
- }
286
-
287
- @ReactProp(name = "rippleRadius")
288
- public void setRippleRadius(ButtonViewGroup view, Integer rippleRadius) {
289
- view.setRippleRadius(rippleRadius);
290
- }
291
-
292
- @Override
293
- protected void onAfterUpdateTransaction(ButtonViewGroup view) {
294
- view.updateBackground();
295
- }
296
- }
@@ -1,72 +0,0 @@
1
- package com.swmansion.gesturehandler.react;
2
-
3
- import android.content.Context;
4
- import android.os.Bundle;
5
- import android.util.AttributeSet;
6
- import android.view.MotionEvent;
7
-
8
- import com.facebook.react.ReactInstanceManager;
9
- import com.facebook.react.ReactRootView;
10
-
11
- import androidx.annotation.Nullable;
12
-
13
- public class RNGestureHandlerEnabledRootView extends ReactRootView {
14
-
15
- private @Nullable ReactInstanceManager mReactInstanceManager;
16
- private @Nullable RNGestureHandlerRootHelper mGestureRootHelper;
17
-
18
- public RNGestureHandlerEnabledRootView(Context context) {
19
- super(context);
20
- }
21
-
22
- public RNGestureHandlerEnabledRootView(Context context, AttributeSet attrs) {
23
- super(context, attrs);
24
- }
25
-
26
- @Override
27
- public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
28
- if (mGestureRootHelper != null) {
29
- mGestureRootHelper.requestDisallowInterceptTouchEvent(disallowIntercept);
30
- }
31
- super.requestDisallowInterceptTouchEvent(disallowIntercept);
32
- }
33
-
34
- @Override
35
- public boolean dispatchTouchEvent(MotionEvent ev) {
36
- if (mGestureRootHelper != null && mGestureRootHelper.dispatchTouchEvent(ev)) {
37
- return true;
38
- }
39
- return super.dispatchTouchEvent(ev);
40
- }
41
-
42
- /**
43
- * This method is used to enable root view to start processing touch events through the gesture
44
- * handler library logic. Unless this method is called (which happens as a result of instantiating
45
- * new gesture handler from JS) the root view component will just proxy all touch related methods
46
- * to its superclass. Thus in the "disabled" state all touch related events will fallback to
47
- * default RN behavior.
48
- */
49
- public void initialize() {
50
- if (mGestureRootHelper != null) {
51
- throw new IllegalStateException("GestureHandler already initialized for root view " + this);
52
- }
53
- mGestureRootHelper = new RNGestureHandlerRootHelper(
54
- mReactInstanceManager.getCurrentReactContext(), this);
55
- }
56
-
57
- public void tearDown() {
58
- if (mGestureRootHelper != null) {
59
- mGestureRootHelper.tearDown();
60
- mGestureRootHelper = null;
61
- }
62
- }
63
-
64
- @Override
65
- public void startReactApplication(
66
- ReactInstanceManager reactInstanceManager,
67
- String moduleName,
68
- @Nullable Bundle initialProperties) {
69
- super.startReactApplication(reactInstanceManager, moduleName, initialProperties);
70
- mReactInstanceManager = reactInstanceManager;
71
- }
72
- }
@@ -1,77 +0,0 @@
1
- package com.swmansion.gesturehandler.react;
2
-
3
- import androidx.core.util.Pools;
4
-
5
- import com.facebook.react.bridge.Arguments;
6
- import com.facebook.react.bridge.WritableMap;
7
- import com.facebook.react.uimanager.events.Event;
8
- import com.facebook.react.uimanager.events.RCTEventEmitter;
9
- import com.swmansion.gesturehandler.GestureHandler;
10
-
11
- import androidx.annotation.Nullable;
12
-
13
- public class RNGestureHandlerEvent extends Event<RNGestureHandlerEvent> {
14
-
15
- public static final String EVENT_NAME = "onGestureHandlerEvent";
16
-
17
- private static final int TOUCH_EVENTS_POOL_SIZE = 7; // magic
18
-
19
- private static final Pools.SynchronizedPool<RNGestureHandlerEvent> EVENTS_POOL =
20
- new Pools.SynchronizedPool<>(TOUCH_EVENTS_POOL_SIZE);
21
-
22
- public static RNGestureHandlerEvent obtain(
23
- GestureHandler handler,
24
- @Nullable RNGestureHandlerEventDataExtractor dataExtractor) {
25
- RNGestureHandlerEvent event = EVENTS_POOL.acquire();
26
- if (event == null) {
27
- event = new RNGestureHandlerEvent();
28
- }
29
- event.init(handler, dataExtractor);
30
- return event;
31
- }
32
-
33
- private WritableMap mExtraData;
34
- private short mCoalescingKey;
35
-
36
- private RNGestureHandlerEvent() {
37
- }
38
-
39
- private void init(
40
- GestureHandler handler,
41
- @Nullable RNGestureHandlerEventDataExtractor dataExtractor) {
42
- super.init(handler.getView().getId());
43
- mExtraData = Arguments.createMap();
44
- if (dataExtractor != null) {
45
- dataExtractor.extractEventData(handler, mExtraData);
46
- }
47
- mExtraData.putInt("handlerTag", handler.getTag());
48
- mExtraData.putInt("state", handler.getState());
49
- mCoalescingKey = handler.getEventCoalescingKey();
50
- }
51
-
52
- @Override
53
- public void onDispose() {
54
- mExtraData = null;
55
- EVENTS_POOL.release(this);
56
- }
57
-
58
- @Override
59
- public String getEventName() {
60
- return EVENT_NAME;
61
- }
62
-
63
- @Override
64
- public boolean canCoalesce() {
65
- return true;
66
- }
67
-
68
- @Override
69
- public short getCoalescingKey() {
70
- return mCoalescingKey;
71
- }
72
-
73
- @Override
74
- public void dispatch(RCTEventEmitter rctEventEmitter) {
75
- rctEventEmitter.receiveEvent(getViewTag(), EVENT_NAME, mExtraData);
76
- }
77
- }
@@ -1,8 +0,0 @@
1
- package com.swmansion.gesturehandler.react;
2
-
3
- import com.facebook.react.bridge.WritableMap;
4
- import com.swmansion.gesturehandler.GestureHandler;
5
-
6
- public interface RNGestureHandlerEventDataExtractor<T extends GestureHandler> {
7
- void extractEventData(T handler, WritableMap eventData);
8
- }
@@ -1,86 +0,0 @@
1
- package com.swmansion.gesturehandler.react;
2
-
3
- import android.util.SparseArray;
4
-
5
- import com.facebook.react.bridge.ReadableArray;
6
- import com.facebook.react.bridge.ReadableMap;
7
- import com.swmansion.gesturehandler.GestureHandler;
8
- import com.swmansion.gesturehandler.GestureHandlerInteractionController;
9
-
10
- public class RNGestureHandlerInteractionManager implements GestureHandlerInteractionController {
11
-
12
- private static final String KEY_WAIT_FOR = "waitFor";
13
- private static final String KEY_SIMULTANEOUS_HANDLERS = "simultaneousHandlers";
14
-
15
- private SparseArray<int[]> mWaitForRelations = new SparseArray<>();
16
- private SparseArray<int[]> mSimultaneousRelations = new SparseArray<>();
17
-
18
- public void dropRelationsForHandlerWithTag(int handlerTag) {
19
- mWaitForRelations.remove(handlerTag);
20
- mSimultaneousRelations.remove(handlerTag);
21
- }
22
-
23
- private int[] convertHandlerTagsArray(ReadableMap config, String key) {
24
- ReadableArray array = config.getArray(key);
25
- int[] result = new int[array.size()];
26
- for (int i = 0; i < result.length; i++) {
27
- result[i] = array.getInt(i);
28
- }
29
- return result;
30
- }
31
-
32
- public void configureInteractions(GestureHandler handler, ReadableMap config) {
33
- handler.setInteractionController(this);
34
- if (config.hasKey(KEY_WAIT_FOR)) {
35
- int[] tags = convertHandlerTagsArray(config, KEY_WAIT_FOR);
36
- mWaitForRelations.put(handler.getTag(), tags);
37
- }
38
- if (config.hasKey(KEY_SIMULTANEOUS_HANDLERS)) {
39
- int[] tags = convertHandlerTagsArray(config, KEY_SIMULTANEOUS_HANDLERS);
40
- mSimultaneousRelations.put(handler.getTag(), tags);
41
- }
42
- }
43
-
44
- @Override
45
- public boolean shouldWaitForHandlerFailure(GestureHandler handler, GestureHandler otherHandler) {
46
- int[] waitForTags = mWaitForRelations.get(handler.getTag());
47
- if (waitForTags != null) {
48
- for (int i = 0; i < waitForTags.length; i++) {
49
- if (waitForTags[i] == otherHandler.getTag()) {
50
- return true;
51
- }
52
- }
53
- }
54
- return false;
55
- }
56
-
57
- @Override
58
- public boolean shouldRequireHandlerToWaitForFailure(GestureHandler handler,
59
- GestureHandler otherHandler) {
60
- return false;
61
- }
62
-
63
- @Override
64
- public boolean shouldHandlerBeCancelledBy(GestureHandler handler, GestureHandler otherHandler) {
65
- return false;
66
- }
67
-
68
- @Override
69
- public boolean shouldRecognizeSimultaneously(GestureHandler handler,
70
- GestureHandler otherHandler) {
71
- int[] simultHandlerTags = mSimultaneousRelations.get(handler.getTag());
72
- if (simultHandlerTags != null) {
73
- for (int i = 0; i < simultHandlerTags.length; i++) {
74
- if (simultHandlerTags[i] == otherHandler.getTag()) {
75
- return true;
76
- }
77
- }
78
- }
79
- return false;
80
- }
81
-
82
- public void reset() {
83
- mWaitForRelations.clear();
84
- mSimultaneousRelations.clear();
85
- }
86
- }