react-native-gesture-handler 1.10.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/README.md +7 -6
  2. package/android/build.gradle +23 -1
  3. package/android/gradle.properties +19 -0
  4. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +710 -0
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +562 -0
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
  11. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
  12. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
  13. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
  14. package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
  15. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
  16. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
  17. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +289 -0
  18. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
  20. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
  21. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +79 -0
  22. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
  23. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
  24. package/android/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -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/xcuserdata/mdk.xcuserdatad/xcschemes/RNGestureHandler.xcscheme +80 -0
  53. package/ios/RNGestureHandler.xcodeproj/xcuserdata/mdk.xcuserdatad/xcschemes/xcschememanagement.plist +27 -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 +52 -83
  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 +415 -0
  112. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/eventReceiver.js +112 -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 +39 -0
  118. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gesture.js +177 -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 +19 -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 +116 -0
  134. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/pinchGesture.js +19 -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 +19 -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 +146 -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 +41 -76
  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 +378 -0
  203. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  204. package/lib/module/handlers/gestures/eventReceiver.js +97 -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 +29 -0
  209. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gesture.js +159 -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 +9 -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 +106 -0
  225. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/pinchGesture.js +9 -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 +9 -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 +22 -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 +10 -0
  277. package/lib/typescript/handlers/gestures/gesture.d.ts +90 -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 +5 -0
  283. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  284. package/lib/typescript/handlers/gestures/panGesture.d.ts +19 -0
  285. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +6 -0
  286. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  287. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +6 -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 +7 -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 +54 -79
  322. package/src/handlers/gestureHandlerCommon.ts +185 -0
  323. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  324. package/src/handlers/gestures/GestureDetector.tsx +490 -0
  325. package/src/handlers/gestures/eventReceiver.ts +129 -0
  326. package/src/handlers/gestures/flingGesture.ts +27 -0
  327. package/src/handlers/gestures/forceTouchGesture.ts +32 -0
  328. package/src/handlers/gestures/gesture.ts +262 -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 +11 -0
  334. package/src/handlers/gestures/nativeGesture.ts +27 -0
  335. package/src/handlers/gestures/panGesture.ts +105 -0
  336. package/src/handlers/gestures/pinchGesture.ts +12 -0
  337. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  338. package/src/handlers/gestures/rotationGesture.ts +12 -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
@@ -0,0 +1,45 @@
1
+ import { ComponentClass } from 'react';
2
+ import {
3
+ GestureUpdateEvent,
4
+ GestureStateChangeEvent,
5
+ } from '../gestureHandlerCommon';
6
+
7
+ export interface SharedValue<T> {
8
+ value: T;
9
+ }
10
+
11
+ let Reanimated: {
12
+ default: {
13
+ // Slightly modified definition copied from 'react-native-reanimated'
14
+ // eslint-disable-next-line @typescript-eslint/ban-types
15
+ createAnimatedComponent<P extends object>(
16
+ component: ComponentClass<P>,
17
+ options?: unknown
18
+ ): ComponentClass<P>;
19
+ };
20
+ useEvent: (
21
+ callback: (event: GestureUpdateEvent | GestureStateChangeEvent) => void,
22
+ events: string[],
23
+ rebuild: boolean
24
+ ) => unknown;
25
+ useSharedValue: <T>(value: T) => SharedValue<T>;
26
+ setGestureState: (handlerTag: number, newState: number) => void;
27
+ };
28
+
29
+ try {
30
+ Reanimated = require('react-native-reanimated');
31
+
32
+ if (!Reanimated.setGestureState) {
33
+ Reanimated.setGestureState = () => {
34
+ 'worklet';
35
+ console.warn(
36
+ 'Please use newer version of react-native-reanimated in order to control state of the gestures.'
37
+ );
38
+ };
39
+ }
40
+ // When 'react-native-reanimated' is not available we want to
41
+ // quietly continue
42
+ // eslint-disable-next-line no-empty
43
+ } catch (e) {}
44
+
45
+ export { Reanimated };
@@ -0,0 +1,12 @@
1
+ import { ContinousBaseGesture } from './gesture';
2
+ import { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';
3
+
4
+ export class RotationGesture extends ContinousBaseGesture<RotationGestureHandlerEventPayload> {
5
+ constructor() {
6
+ super();
7
+
8
+ this.handlerName = 'RotationGestureHandler';
9
+ }
10
+ }
11
+
12
+ export type RotationGestureType = InstanceType<typeof RotationGesture>;
@@ -0,0 +1,52 @@
1
+ import { BaseGestureConfig, BaseGesture } from './gesture';
2
+ import {
3
+ TapGestureConfig,
4
+ TapGestureHandlerEventPayload,
5
+ } from '../TapGestureHandler';
6
+
7
+ export class TapGesture extends BaseGesture<TapGestureHandlerEventPayload> {
8
+ public config: BaseGestureConfig & TapGestureConfig = {};
9
+
10
+ constructor() {
11
+ super();
12
+
13
+ this.handlerName = 'TapGestureHandler';
14
+ }
15
+
16
+ minPointers(minPointers: number) {
17
+ this.config.minPointers = minPointers;
18
+ return this;
19
+ }
20
+
21
+ numberOfTaps(count: number) {
22
+ this.config.numberOfTaps = count;
23
+ return this;
24
+ }
25
+
26
+ maxDistance(maxDist: number) {
27
+ this.config.maxDist = maxDist;
28
+ return this;
29
+ }
30
+
31
+ maxDuration(duration: number) {
32
+ this.config.maxDurationMs = duration;
33
+ return this;
34
+ }
35
+
36
+ maxDelay(delay: number) {
37
+ this.config.maxDelayMs = delay;
38
+ return this;
39
+ }
40
+
41
+ maxDeltaX(delta: number) {
42
+ this.config.maxDeltaX = delta;
43
+ return this;
44
+ }
45
+
46
+ maxDeltaY(delta: number) {
47
+ this.config.maxDeltaY = delta;
48
+ return this;
49
+ }
50
+ }
51
+
52
+ export type TapGestureType = InstanceType<typeof TapGesture>;
@@ -0,0 +1,22 @@
1
+ import { GestureType } from './gestures/gesture';
2
+
3
+ export const handlerIDToTag: Record<string, number> = {};
4
+ const handlers = new Map<number, GestureType>();
5
+
6
+ let handlerTag = 1;
7
+
8
+ export function getNextHandlerTag(): number {
9
+ return handlerTag++;
10
+ }
11
+
12
+ export function registerHandler(handlerTag: number, handler: GestureType) {
13
+ handlers.set(handlerTag, handler);
14
+ }
15
+
16
+ export function unregisterHandler(handlerTag: number) {
17
+ handlers.delete(handlerTag);
18
+ }
19
+
20
+ export function findHandler(handlerTag: number) {
21
+ return handlers.get(handlerTag);
22
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { initialize } from './init';
2
+
1
3
  export { Directions } from './Directions';
2
4
  export { State } from './State';
3
5
  export { default as gestureHandlerRootHOC } from './gestureHandlerRootHOC';
@@ -9,36 +11,72 @@ export type {
9
11
  // event payloads types
10
12
  GestureEventPayload,
11
13
  HandlerStateChangeEventPayload,
14
+ // pointer events
15
+ GestureTouchEvent,
16
+ TouchData,
17
+ // new api event types
18
+ GestureUpdateEvent,
19
+ GestureStateChangeEvent,
20
+ } from './handlers/gestureHandlerCommon';
21
+ export type { GestureType } from './handlers/gestures/gesture';
22
+ export type {
12
23
  TapGestureHandlerEventPayload,
13
- ForceTouchGestureHandlerEventPayload,
14
- LongPressGestureHandlerEventPayload,
15
- PanGestureHandlerEventPayload,
16
- PinchGestureHandlerEventPayload,
17
- RotationGestureHandlerEventPayload,
18
- FlingGestureHandlerEventPayload,
19
- // gesture handlers props types
20
24
  TapGestureHandlerProps,
25
+ } from './handlers/TapGestureHandler';
26
+ export type {
27
+ ForceTouchGestureHandlerEventPayload,
21
28
  ForceTouchGestureHandlerProps,
29
+ } from './handlers/ForceTouchGestureHandler';
30
+ export type {
31
+ LongPressGestureHandlerEventPayload,
22
32
  LongPressGestureHandlerProps,
33
+ } from './handlers/LongPressGestureHandler';
34
+ export type {
35
+ PanGestureHandlerEventPayload,
23
36
  PanGestureHandlerProps,
37
+ } from './handlers/PanGestureHandler';
38
+ export type {
39
+ PinchGestureHandlerEventPayload,
24
40
  PinchGestureHandlerProps,
41
+ } from './handlers/PinchGestureHandler';
42
+ export type {
43
+ RotationGestureHandlerEventPayload,
25
44
  RotationGestureHandlerProps,
45
+ } from './handlers/RotationGestureHandler';
46
+ export type {
47
+ FlingGestureHandlerEventPayload,
26
48
  FlingGestureHandlerProps,
27
- } from './handlers/gestureHandlers';
28
- export {
29
- TapGestureHandler,
30
- ForceTouchGestureHandler,
31
- LongPressGestureHandler,
32
- PanGestureHandler,
33
- PinchGestureHandler,
34
- RotationGestureHandler,
35
- FlingGestureHandler,
36
- } from './handlers/gestureHandlers';
49
+ } from './handlers/FlingGestureHandler';
50
+ export { TapGestureHandler } from './handlers/TapGestureHandler';
51
+ export { ForceTouchGestureHandler } from './handlers/ForceTouchGestureHandler';
52
+ export { LongPressGestureHandler } from './handlers/LongPressGestureHandler';
53
+ export { PanGestureHandler } from './handlers/PanGestureHandler';
54
+ export { PinchGestureHandler } from './handlers/PinchGestureHandler';
55
+ export { RotationGestureHandler } from './handlers/RotationGestureHandler';
56
+ export { FlingGestureHandler } from './handlers/FlingGestureHandler';
37
57
  export { default as createNativeWrapper } from './handlers/createNativeWrapper';
38
58
  export type {
39
59
  NativeViewGestureHandlerPayload,
40
60
  NativeViewGestureHandlerProps,
41
61
  } from './handlers/NativeViewGestureHandler';
62
+ export { GestureDetector } from './handlers/gestures/GestureDetector';
63
+ export { GestureObjects as Gesture } from './handlers/gestures/gestureObjects';
64
+ export { TapGestureType as TapGesture } from './handlers/gestures/tapGesture';
65
+ export { PanGestureType as PanGesture } from './handlers/gestures/panGesture';
66
+ export { FlingGestureType as FlingGesture } from './handlers/gestures/flingGesture';
67
+ export { LongPressGestureType as LongPressGesture } from './handlers/gestures/longPressGesture';
68
+ export { PinchGestureType as PinchGesture } from './handlers/gestures/pinchGesture';
69
+ export { RotationGestureType as RotationGesture } from './handlers/gestures/rotationGesture';
70
+ export { ForceTouchGestureType as ForceTouchGesture } from './handlers/gestures/forceTouchGesture';
71
+ export { NativeGestureType as NativeGesture } from './handlers/gestures/nativeGesture';
72
+ export { ManualGestureType as ManualGesture } from './handlers/gestures/manualGesture';
73
+ export {
74
+ ComposedGestureType as ComposedGesture,
75
+ RaceGestureType as RaceGesture,
76
+ SimultaneousGestureType as SimultaneousGesture,
77
+ ExclusiveGestureType as ExclusiveGesture,
78
+ } from './handlers/gestures/gestureComposition';
79
+ export { GestureStateManagerType as GestureStateManager } from './handlers/gestures/gestureStateManager';
42
80
  export { NativeViewGestureHandler } from './handlers/NativeViewGestureHandler';
43
81
  export type {
44
82
  RawButtonProps,
@@ -114,3 +152,5 @@ export type {
114
152
  DrawerKeyboardDismissMode,
115
153
  } from './components/DrawerLayout';
116
154
  export { default as DrawerLayout } from './components/DrawerLayout';
155
+
156
+ initialize();
package/src/init.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { startListening } from './handlers/gestures/eventReceiver';
2
+
3
+ export function initialize() {
4
+ startListening();
5
+ }
package/src/mocks.ts CHANGED
@@ -1,19 +1,59 @@
1
- import { View, ScrollView as RNScrollView } from 'react-native';
1
+ import {
2
+ TouchableHighlight,
3
+ TouchableNativeFeedback,
4
+ TouchableOpacity,
5
+ TouchableWithoutFeedback,
6
+ ScrollView,
7
+ FlatList,
8
+ Switch,
9
+ TextInput,
10
+ DrawerLayoutAndroid,
11
+ View,
12
+ } from 'react-native';
2
13
  import { State } from './State';
3
14
  import { Directions } from './Directions';
4
15
 
5
16
  const NOOP = () => {
6
17
  // do nothing
7
18
  };
8
- const ScrollView = RNScrollView;
9
19
  const PanGestureHandler = View;
10
20
  const attachGestureHandler = NOOP;
11
21
  const createGestureHandler = NOOP;
12
22
  const dropGestureHandler = NOOP;
13
23
  const updateGestureHandler = NOOP;
24
+ const NativeViewGestureHandler = View;
25
+ const TapGestureHandler = View;
26
+ const ForceTouchGestureHandler = View;
27
+ const LongPressGestureHandler = View;
28
+ const PinchGestureHandler = View;
29
+ const RotationGestureHandler = View;
30
+ const FlingGestureHandler = View;
31
+ const RawButton = TouchableNativeFeedback;
32
+ const BaseButton = TouchableNativeFeedback;
33
+ const RectButton = TouchableNativeFeedback;
34
+ const BorderlessButton = TouchableNativeFeedback;
14
35
 
15
36
  export default {
37
+ TouchableHighlight,
38
+ TouchableNativeFeedback,
39
+ TouchableOpacity,
40
+ TouchableWithoutFeedback,
16
41
  ScrollView,
42
+ FlatList,
43
+ Switch,
44
+ TextInput,
45
+ DrawerLayoutAndroid,
46
+ NativeViewGestureHandler,
47
+ TapGestureHandler,
48
+ ForceTouchGestureHandler,
49
+ LongPressGestureHandler,
50
+ PinchGestureHandler,
51
+ RotationGestureHandler,
52
+ FlingGestureHandler,
53
+ RawButton,
54
+ BaseButton,
55
+ RectButton,
56
+ BorderlessButton,
17
57
  PanGestureHandler,
18
58
  attachGestureHandler,
19
59
  createGestureHandler,
package/src/utils.ts ADDED
@@ -0,0 +1,7 @@
1
+ export function toArray<T>(object: T | T[]): T[] {
2
+ if (!Array.isArray(object)) {
3
+ return [object];
4
+ }
5
+
6
+ return object;
7
+ }
@@ -466,8 +466,7 @@ function invokeNullableMethod(
466
466
  if ('__nodeConfig' in method) {
467
467
  const { argMapping } = method.__nodeConfig;
468
468
  if (Array.isArray(argMapping)) {
469
- for (const index in argMapping) {
470
- const [key, value] = argMapping[index];
469
+ for (const [index, [key, value]] of argMapping.entries()) {
471
470
  if (key in event.nativeEvent) {
472
471
  // @ts-ignore fix method type
473
472
  const nativeValue = event.nativeEvent[key];
@@ -22,6 +22,11 @@ export function createGestureHandler(
22
22
  }
23
23
 
24
24
  export function dropGestureHandler(handlerTag: number) {
25
+ // Since React 18, there are cases where componentWillUnmount gets called twice in a row
26
+ // so skip this if the tag was already removed.
27
+ if (!(handlerTag in gestures)) {
28
+ return;
29
+ }
25
30
  getHandler(handlerTag).destroy();
26
31
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
27
32
  delete gestures[handlerTag];
@@ -1,23 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- public abstract class BaseGestureHandlerInteractionController
4
- implements GestureHandlerInteractionController {
5
-
6
- @Override
7
- public boolean shouldWaitForHandlerFailure(GestureHandler handler,
8
- GestureHandler otherHandler) {
9
- return false;
10
- }
11
-
12
- @Override
13
- public boolean shouldRequireHandlerToWaitForFailure(GestureHandler handler,
14
- GestureHandler otherHandler) {
15
- return false;
16
- }
17
-
18
- @Override
19
- public boolean shouldRecognizeSimultaneously(GestureHandler handler,
20
- GestureHandler otherHandler) {
21
- return false;
22
- }
23
- }
@@ -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
- }