react-native-gesture-handler 2.7.1 → 2.9.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 (232) hide show
  1. package/RNGestureHandler.podspec +1 -1
  2. package/android/build.gradle +53 -46
  3. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
  4. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
  5. package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
  6. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
  7. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
  8. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
  9. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
  10. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
  11. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
  12. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
  13. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
  14. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
  15. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
  16. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
  17. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
  18. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
  19. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
  20. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
  21. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
  22. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
  23. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
  24. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
  25. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +8 -6
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +20 -8
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +40 -15
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
  39. package/android/src/main/jni/CMakeLists.txt +10 -44
  40. package/android/src/main/jni/cpp-adapter.cpp +16 -13
  41. package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
  42. package/ios/Handlers/RNFlingHandler.m +39 -37
  43. package/ios/Handlers/RNForceTouchHandler.m +19 -17
  44. package/ios/Handlers/RNLongPressHandler.m +20 -22
  45. package/ios/Handlers/RNManualHandler.m +23 -8
  46. package/ios/Handlers/RNNativeViewHandler.mm +92 -88
  47. package/ios/Handlers/RNPanHandler.m +28 -32
  48. package/ios/Handlers/RNPinchHandler.m +9 -10
  49. package/ios/Handlers/RNRotationHandler.m +11 -14
  50. package/ios/Handlers/RNTapHandler.m +26 -26
  51. package/ios/RNGestureHandler.h +31 -24
  52. package/ios/RNGestureHandler.m +278 -273
  53. package/ios/RNGestureHandlerActionType.h +6 -4
  54. package/ios/RNGestureHandlerButton.m +11 -12
  55. package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
  56. package/ios/RNGestureHandlerButtonManager.m +6 -5
  57. package/ios/RNGestureHandlerDirection.h +4 -4
  58. package/ios/RNGestureHandlerEvents.h +3 -4
  59. package/ios/RNGestureHandlerEvents.m +114 -119
  60. package/ios/RNGestureHandlerManager.h +1 -2
  61. package/ios/RNGestureHandlerManager.mm +176 -178
  62. package/ios/RNGestureHandlerModule.h +1 -2
  63. package/ios/RNGestureHandlerModule.mm +126 -122
  64. package/ios/RNGestureHandlerPointerTracker.h +1 -1
  65. package/ios/RNGestureHandlerPointerTracker.m +40 -37
  66. package/ios/RNGestureHandlerRegistry.h +3 -1
  67. package/ios/RNGestureHandlerRegistry.m +24 -22
  68. package/ios/RNGestureHandlerState.h +6 -6
  69. package/ios/RNGestureHandlerStateManager.h +1 -1
  70. package/ios/RNManualActivationRecognizer.m +9 -9
  71. package/ios/RNRootViewGestureRecognizer.m +36 -39
  72. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  73. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
  75. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
  76. package/lib/commonjs/components/DrawerLayout.js +1 -0
  77. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  78. package/lib/commonjs/components/Swipeable.js.map +1 -1
  79. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  80. package/lib/commonjs/gestureHandlerRootHOC.js +2 -1
  81. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  82. package/lib/commonjs/getShadowNodeFromRef.js +2 -2
  83. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  84. package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
  85. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  86. package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
  87. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  88. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  89. package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
  90. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  91. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
  92. package/lib/commonjs/handlers/gestures/GestureDetector.js +87 -38
  93. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  94. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  95. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  96. package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
  97. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  98. package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
  99. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  100. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  101. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  102. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
  103. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  104. package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
  105. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  106. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -2
  107. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  108. package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
  109. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  110. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
  111. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  112. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
  113. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  114. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
  115. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  116. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
  117. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  118. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -2
  119. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  120. package/lib/commonjs/web/interfaces.js.map +1 -1
  121. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  122. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  123. package/lib/commonjs/web_hammer/NodeManager.js +4 -1
  124. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  125. package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
  126. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  127. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  128. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  129. package/lib/module/RNGestureHandlerModule.windows.js +117 -0
  130. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
  131. package/lib/module/components/DrawerLayout.js +1 -0
  132. package/lib/module/components/DrawerLayout.js.map +1 -1
  133. package/lib/module/components/Swipeable.js.map +1 -1
  134. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  135. package/lib/module/gestureHandlerRootHOC.js +2 -1
  136. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  137. package/lib/module/getShadowNodeFromRef.js +2 -2
  138. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  139. package/lib/module/handlers/LongPressGestureHandler.js +3 -1
  140. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  141. package/lib/module/handlers/TapGestureHandler.js +3 -1
  142. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  143. package/lib/module/handlers/createHandler.js.map +1 -1
  144. package/lib/module/handlers/gestureHandlerCommon.js +5 -2
  145. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  146. package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
  147. package/lib/module/handlers/gestures/GestureDetector.js +89 -39
  148. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  149. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  150. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  151. package/lib/module/handlers/gestures/longPressGesture.js +1 -0
  152. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  153. package/lib/module/handlers/gestures/tapGesture.js +1 -0
  154. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  155. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  156. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  157. package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
  158. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  159. package/lib/module/web/handlers/GestureHandler.js +28 -3
  160. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  161. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -2
  162. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  163. package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
  164. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  165. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
  166. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  167. package/lib/module/web/handlers/PanGestureHandler.js +0 -5
  168. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  169. package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
  170. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  171. package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
  172. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  173. package/lib/module/web/handlers/TapGestureHandler.js +0 -2
  174. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  175. package/lib/module/web/interfaces.js.map +1 -1
  176. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  177. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  178. package/lib/module/web_hammer/NodeManager.js +4 -1
  179. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  180. package/lib/module/web_hammer/PanGestureHandler.js +25 -6
  181. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  182. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
  183. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  184. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
  185. package/lib/typescript/components/DrawerLayout.d.ts +10 -1
  186. package/lib/typescript/components/Swipeable.d.ts +3 -2
  187. package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
  188. package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
  189. package/lib/typescript/gestureHandlerRootHOC.d.ts +1 -1
  190. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  191. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
  192. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
  193. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
  194. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
  195. package/lib/typescript/web/interfaces.d.ts +3 -1
  196. package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
  197. package/package.json +17 -14
  198. package/src/RNGestureHandlerModule.macos.ts +2 -2
  199. package/src/RNGestureHandlerModule.web.ts +2 -2
  200. package/src/RNGestureHandlerModule.windows.ts +140 -0
  201. package/src/components/DrawerLayout.tsx +22 -12
  202. package/src/components/Swipeable.tsx +16 -13
  203. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  204. package/src/gestureHandlerRootHOC.tsx +4 -1
  205. package/src/getShadowNodeFromRef.ts +3 -3
  206. package/src/handlers/LongPressGestureHandler.ts +3 -1
  207. package/src/handlers/TapGestureHandler.ts +3 -1
  208. package/src/handlers/createHandler.tsx +13 -15
  209. package/src/handlers/gestureHandlerCommon.ts +9 -4
  210. package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
  211. package/src/handlers/gestures/GestureDetector.tsx +117 -44
  212. package/src/handlers/gestures/eventReceiver.ts +2 -1
  213. package/src/handlers/gestures/gesture.ts +8 -12
  214. package/src/handlers/gestures/longPressGesture.ts +1 -0
  215. package/src/handlers/gestures/tapGesture.ts +1 -0
  216. package/src/jestUtils/jestUtils.ts +3 -4
  217. package/src/web/detectors/RotationGestureDetector.ts +2 -1
  218. package/src/web/handlers/FlingGestureHandler.ts +2 -3
  219. package/src/web/handlers/GestureHandler.ts +30 -11
  220. package/src/web/handlers/LongPressGestureHandler.ts +0 -3
  221. package/src/web/handlers/ManualGestureHandler.ts +10 -1
  222. package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
  223. package/src/web/handlers/PanGestureHandler.ts +0 -6
  224. package/src/web/handlers/PinchGestureHandler.ts +0 -2
  225. package/src/web/handlers/RotationGestureHandler.ts +2 -5
  226. package/src/web/handlers/TapGestureHandler.ts +0 -3
  227. package/src/web/interfaces.ts +3 -0
  228. package/src/web/tools/InteractionManager.ts +2 -3
  229. package/src/web_hammer/GestureHandler.ts +6 -8
  230. package/src/web_hammer/NodeManager.ts +3 -1
  231. package/src/web_hammer/PanGestureHandler.ts +12 -6
  232. package/android/lib/build.gradle +0 -28
@@ -1,4 +1,4 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  import android.content.Context
4
4
  import android.os.Handler
@@ -6,8 +6,8 @@ import android.os.Looper
6
6
  import android.view.MotionEvent
7
7
  import android.view.VelocityTracker
8
8
  import android.view.ViewConfiguration
9
- import com.swmansion.gesturehandler.GestureUtils.getLastPointerX
10
- import com.swmansion.gesturehandler.GestureUtils.getLastPointerY
9
+ import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerX
10
+ import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerY
11
11
 
12
12
  class PanGestureHandler(context: Context?) : GestureHandler<PanGestureHandler>() {
13
13
  var velocityX = 0f
@@ -173,12 +173,14 @@ class PanGestureHandler(context: Context?) : GestureHandler<PanGestureHandler>()
173
173
  }
174
174
  val vx = velocityX
175
175
  if (minVelocityX != MIN_VALUE_IGNORE &&
176
- (minVelocityX < 0 && vx <= minVelocityX || minVelocityX in 0.0f..vx)) {
176
+ (minVelocityX < 0 && vx <= minVelocityX || minVelocityX in 0.0f..vx)
177
+ ) {
177
178
  return true
178
179
  }
179
180
  val vy = velocityY
180
181
  if (minVelocityY != MIN_VALUE_IGNORE &&
181
- (minVelocityY < 0 && vx <= minVelocityY || minVelocityY in 0.0f..vx)) {
182
+ (minVelocityY < 0 && vx <= minVelocityY || minVelocityY in 0.0f..vx)
183
+ ) {
182
184
  return true
183
185
  }
184
186
  val velocitySq = vx * vx + vy * vy
@@ -1,4 +1,4 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  import android.graphics.PointF
4
4
  import android.view.MotionEvent
@@ -18,7 +18,8 @@ class PinchGestureHandler : GestureHandler<PinchGestureHandler>() {
18
18
  private var scaleGestureDetector: ScaleGestureDetector? = null
19
19
  private var startingSpan = 0f
20
20
  private var spanSlop = 0f
21
- private val gestureListener: ScaleGestureDetector.OnScaleGestureListener = object : ScaleGestureDetector.OnScaleGestureListener {
21
+ private val gestureListener: ScaleGestureDetector.OnScaleGestureListener = object :
22
+ ScaleGestureDetector.OnScaleGestureListener {
22
23
  override fun onScale(detector: ScaleGestureDetector): Boolean {
23
24
  val prevScaleFactor: Double = scale
24
25
  scale *= detector.scaleFactor.toDouble()
@@ -26,8 +27,9 @@ class PinchGestureHandler : GestureHandler<PinchGestureHandler>() {
26
27
  if (delta > 0) {
27
28
  velocity = (scale - prevScaleFactor) / delta
28
29
  }
29
- if (abs(startingSpan - detector.currentSpan) >= spanSlop
30
- && state == STATE_BEGAN) {
30
+ if (abs(startingSpan - detector.currentSpan) >= spanSlop &&
31
+ state == STATE_BEGAN
32
+ ) {
31
33
  activate()
32
34
  }
33
35
  return true
@@ -55,6 +57,11 @@ class PinchGestureHandler : GestureHandler<PinchGestureHandler>() {
55
57
  scaleGestureDetector = ScaleGestureDetector(context, gestureListener)
56
58
  val configuration = ViewConfiguration.get(context)
57
59
  spanSlop = configuration.scaledTouchSlop.toFloat()
60
+
61
+ // set the focal point to the position of the first pointer as NaN causes the event not to arrive
62
+ this.focalPointX = event.x
63
+ this.focalPointY = event.y
64
+
58
65
  begin()
59
66
  }
60
67
  scaleGestureDetector?.onTouchEvent(sourceEvent)
@@ -1,4 +1,4 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  enum class PointerEventsConfig {
4
4
  /**
@@ -1,4 +1,4 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  import android.view.MotionEvent
4
4
  import kotlin.math.atan2
@@ -1,8 +1,8 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  import android.graphics.PointF
4
4
  import android.view.MotionEvent
5
- import com.swmansion.gesturehandler.RotationGestureDetector.OnRotationGestureListener
5
+ import com.swmansion.gesturehandler.core.RotationGestureDetector.OnRotationGestureListener
6
6
  import kotlin.math.abs
7
7
 
8
8
  class RotationGestureHandler : GestureHandler<RotationGestureHandler>() {
@@ -45,6 +45,11 @@ class RotationGestureHandler : GestureHandler<RotationGestureHandler>() {
45
45
  if (state == STATE_UNDETERMINED) {
46
46
  resetProgress()
47
47
  rotationGestureDetector = RotationGestureDetector(gestureListener)
48
+
49
+ // set the anchor to the position of the first pointer as NaN causes the event not to arrive
50
+ this.anchorX = event.x
51
+ this.anchorY = event.y
52
+
48
53
  begin()
49
54
  }
50
55
  rotationGestureDetector?.onTouchEvent(sourceEvent)
@@ -5,7 +5,7 @@
5
5
  * Modified line 189 to set initial min span to 0 instead of copying it from the system configuration
6
6
  */
7
7
 
8
- package com.swmansion.gesturehandler;
8
+ package com.swmansion.gesturehandler.core;
9
9
 
10
10
  import android.content.Context;
11
11
  import android.os.Build;
@@ -1,10 +1,10 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  import android.os.Handler
4
4
  import android.os.Looper
5
5
  import android.view.MotionEvent
6
- import com.swmansion.gesturehandler.GestureUtils.getLastPointerX
7
- import com.swmansion.gesturehandler.GestureUtils.getLastPointerY
6
+ import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerX
7
+ import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerY
8
8
  import kotlin.math.abs
9
9
 
10
10
  class TapGestureHandler : GestureHandler<TapGestureHandler>() {
@@ -1,4 +1,4 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.core
2
2
 
3
3
  import android.view.View
4
4
  import android.view.ViewGroup
@@ -1,11 +1,11 @@
1
- package com.swmansion.gesturehandler
1
+ package com.swmansion.gesturehandler.react
2
2
 
3
3
  import com.facebook.react.bridge.ReactContext
4
4
  import com.facebook.react.modules.core.DeviceEventManagerModule
5
5
  import com.facebook.react.uimanager.UIManagerModule
6
6
 
7
7
  val ReactContext.deviceEventEmitter: DeviceEventManagerModule.RCTDeviceEventEmitter
8
- get() = this.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
8
+ get() = this.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
9
9
 
10
10
  val ReactContext.UIManager: UIManagerModule
11
- get() = this.getNativeModule(UIManagerModule::class.java)!!
11
+ get() = this.getNativeModule(UIManagerModule::class.java)!!
@@ -27,7 +27,7 @@ import com.facebook.react.uimanager.ViewProps
27
27
  import com.facebook.react.uimanager.annotations.ReactProp
28
28
  import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate
29
29
  import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerInterface
30
- import com.swmansion.gesturehandler.NativeViewGestureHandler
30
+ import com.swmansion.gesturehandler.core.NativeViewGestureHandler
31
31
  import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager.ButtonViewGroup
32
32
 
33
33
  @ReactModule(name = RNGestureHandlerButtonViewManager.REACT_CLASS)
@@ -35,7 +35,7 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
35
35
  private val mDelegate: ViewManagerDelegate<ButtonViewGroup>
36
36
 
37
37
  init {
38
- mDelegate = RNGestureHandlerButtonManagerDelegate<ButtonViewGroup, RNGestureHandlerButtonViewManager>(this)
38
+ mDelegate = RNGestureHandlerButtonManagerDelegate<ButtonViewGroup, RNGestureHandlerButtonViewManager>(this)
39
39
  }
40
40
 
41
41
  override fun getName() = REACT_CLASS
@@ -91,7 +91,8 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
91
91
  return mDelegate
92
92
  }
93
93
 
94
- class ButtonViewGroup(context: Context?) : ViewGroup(context),
94
+ class ButtonViewGroup(context: Context?) :
95
+ ViewGroup(context),
95
96
  NativeViewGestureHandler.NativeViewGestureHandlerHook {
96
97
  // Using object because of handling null representing no value set.
97
98
  var rippleColor: Int? = null
@@ -254,9 +255,9 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
254
255
  }
255
256
 
256
257
  val drawable = RippleDrawable(
257
- colorStateList,
258
- null,
259
- if (useBorderlessDrawable) null else ShapeDrawable(RectShape())
258
+ colorStateList,
259
+ null,
260
+ if (useBorderlessDrawable) null else ShapeDrawable(RectShape())
260
261
  )
261
262
 
262
263
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && rippleRadius != null) {
@@ -330,6 +331,7 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
330
331
  // don't preform click when a child button is pressed (mainly to prevent sound effect of
331
332
  // a parent button from playing)
332
333
  return if (!isChildTouched() && soundResponder == this) {
334
+ tryFreeingResponder()
333
335
  soundResponder = null
334
336
  super.performClick()
335
337
  } else {
@@ -1,12 +1,8 @@
1
1
  package com.swmansion.gesturehandler.react
2
2
 
3
3
  import android.content.Context
4
- import android.os.Bundle
5
4
  import android.util.AttributeSet
6
- import android.view.MotionEvent
7
- import com.facebook.react.ReactInstanceManager
8
5
  import com.facebook.react.ReactRootView
9
- import java.lang.Exception
10
6
 
11
7
  @Deprecated(message = "Use <GestureHandlerRootView /> component instead. Check gesture handler installation instructions in documentation for more information.")
12
8
  class RNGestureHandlerEnabledRootView : ReactRootView {
@@ -14,6 +10,6 @@ class RNGestureHandlerEnabledRootView : ReactRootView {
14
10
  constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
15
11
 
16
12
  init {
17
- throw UnsupportedOperationException("Your application is configured to use RNGestureHandlerEnabledRootView which is no longer supported. You can see how to migrate to <GestureHandlerRootView /> here: https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot")
13
+ throw UnsupportedOperationException("Your application is configured to use RNGestureHandlerEnabledRootView which is no longer supported. You can see how to migrate to <GestureHandlerRootView /> here: https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot")
18
14
  }
19
15
  }
@@ -11,18 +11,28 @@ import com.facebook.react.bridge.Arguments
11
11
  import com.facebook.react.bridge.WritableMap
12
12
  import com.facebook.react.uimanager.events.Event
13
13
  import com.facebook.react.uimanager.events.RCTEventEmitter
14
- import com.swmansion.gesturehandler.GestureHandler
14
+ import com.swmansion.gesturehandler.core.GestureHandler
15
15
 
16
16
  class RNGestureHandlerEvent private constructor() : Event<RNGestureHandlerEvent>() {
17
17
  private var extraData: WritableMap? = null
18
18
  private var coalescingKey: Short = 0
19
+
20
+ // On the new architecture, native animated expects event names prefixed with `top` instead of `on`,
21
+ // since we know when the native animated node is the target of the event we can use the different
22
+ // event name where appropriate.
23
+ // TODO: This is a workaround not as solution, but doing this properly would require a total overhaul of
24
+ // how GH sends events (which needs to be done, but maybe wait until the RN's apis stop changing)
25
+ private var useTopPrefixedName: Boolean = false
26
+
19
27
  private fun <T : GestureHandler<T>> init(
20
28
  handler: T,
21
29
  dataExtractor: RNGestureHandlerEventDataExtractor<T>?,
30
+ useNativeAnimatedName: Boolean
22
31
  ) {
23
32
  super.init(handler.view!!.id)
24
33
  extraData = createEventData(handler, dataExtractor)
25
34
  coalescingKey = handler.eventCoalescingKey
35
+ this.useTopPrefixedName = useNativeAnimatedName
26
36
  }
27
37
 
28
38
  override fun onDispose() {
@@ -30,7 +40,7 @@ class RNGestureHandlerEvent private constructor() : Event<RNGestureHandlerEvent>
30
40
  EVENTS_POOL.release(this)
31
41
  }
32
42
 
33
- override fun getEventName() = EVENT_NAME
43
+ override fun getEventName() = if (useTopPrefixedName) NATIVE_ANIMATED_EVENT_NAME else EVENT_NAME
34
44
 
35
45
  override fun canCoalesce() = true
36
46
 
@@ -42,24 +52,26 @@ class RNGestureHandlerEvent private constructor() : Event<RNGestureHandlerEvent>
42
52
 
43
53
  companion object {
44
54
  const val EVENT_NAME = "onGestureHandlerEvent"
55
+ const val NATIVE_ANIMATED_EVENT_NAME = "topGestureHandlerEvent"
45
56
  private const val TOUCH_EVENTS_POOL_SIZE = 7 // magic
46
57
  private val EVENTS_POOL = Pools.SynchronizedPool<RNGestureHandlerEvent>(TOUCH_EVENTS_POOL_SIZE)
47
58
 
48
59
  fun <T : GestureHandler<T>> obtain(
49
60
  handler: T,
50
61
  dataExtractor: RNGestureHandlerEventDataExtractor<T>?,
62
+ useTopPrefixedName: Boolean = false
51
63
  ): RNGestureHandlerEvent =
52
64
  (EVENTS_POOL.acquire() ?: RNGestureHandlerEvent()).apply {
53
- init(handler, dataExtractor)
65
+ init(handler, dataExtractor, useTopPrefixedName)
54
66
  }
55
67
 
56
- fun <T: GestureHandler<T>> createEventData(
68
+ fun <T : GestureHandler<T>> createEventData(
57
69
  handler: T,
58
70
  dataExtractor: RNGestureHandlerEventDataExtractor<T>?
59
71
  ): WritableMap = Arguments.createMap().apply {
60
- dataExtractor?.extractEventData(handler, this)
61
- putInt("handlerTag", handler.tag)
62
- putInt("state", handler.state)
63
- }
72
+ dataExtractor?.extractEventData(handler, this)
73
+ putInt("handlerTag", handler.tag)
74
+ putInt("state", handler.state)
75
+ }
64
76
  }
65
77
  }
@@ -1,7 +1,7 @@
1
1
  package com.swmansion.gesturehandler.react
2
2
 
3
3
  import com.facebook.react.bridge.WritableMap
4
- import com.swmansion.gesturehandler.GestureHandler
4
+ import com.swmansion.gesturehandler.core.GestureHandler
5
5
 
6
6
  interface RNGestureHandlerEventDataExtractor<T : GestureHandler<T>> {
7
7
  fun extractEventData(handler: T, eventData: WritableMap)
@@ -2,9 +2,9 @@ package com.swmansion.gesturehandler.react
2
2
 
3
3
  import android.util.SparseArray
4
4
  import com.facebook.react.bridge.ReadableMap
5
- import com.swmansion.gesturehandler.GestureHandler
6
- import com.swmansion.gesturehandler.GestureHandlerInteractionController
7
- import com.swmansion.gesturehandler.NativeViewGestureHandler
5
+ import com.swmansion.gesturehandler.core.GestureHandler
6
+ import com.swmansion.gesturehandler.core.GestureHandlerInteractionController
7
+ import com.swmansion.gesturehandler.core.NativeViewGestureHandler
8
8
 
9
9
  class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
10
10
  private val waitForRelations = SparseArray<IntArray>()
@@ -3,17 +3,33 @@ package com.swmansion.gesturehandler.react
3
3
  import android.content.Context
4
4
  import android.util.Log
5
5
  import android.view.MotionEvent
6
- import android.view.ViewGroup
7
6
  import com.facebook.react.ReactRootView
8
- import com.facebook.react.bridge.*
7
+ import com.facebook.react.bridge.JSApplicationIllegalArgumentException
8
+ import com.facebook.react.bridge.ReactApplicationContext
9
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
10
+ import com.facebook.react.bridge.ReactMethod
11
+ import com.facebook.react.bridge.ReadableMap
12
+ import com.facebook.react.bridge.ReadableType
13
+ import com.facebook.react.bridge.WritableMap
9
14
  import com.facebook.react.module.annotations.ReactModule
10
15
  import com.facebook.react.uimanager.PixelUtil
11
- import com.facebook.react.uimanager.UIBlock
12
16
  import com.facebook.react.uimanager.events.Event
13
17
  import com.facebook.soloader.SoLoader
14
18
  import com.swmansion.common.GestureHandlerStateManager
15
- import com.swmansion.gesturehandler.*
16
- import java.util.*
19
+ import com.swmansion.gesturehandler.BuildConfig
20
+ import com.swmansion.gesturehandler.ReanimatedEventDispatcher
21
+ import com.swmansion.gesturehandler.core.FlingGestureHandler
22
+ import com.swmansion.gesturehandler.core.GestureHandler
23
+ import com.swmansion.gesturehandler.core.LongPressGestureHandler
24
+ import com.swmansion.gesturehandler.core.ManualGestureHandler
25
+ import com.swmansion.gesturehandler.core.NativeViewGestureHandler
26
+ import com.swmansion.gesturehandler.core.OnTouchEventListener
27
+ import com.swmansion.gesturehandler.core.PanGestureHandler
28
+ import com.swmansion.gesturehandler.core.PinchGestureHandler
29
+ import com.swmansion.gesturehandler.core.RotationGestureHandler
30
+ import com.swmansion.gesturehandler.core.TapGestureHandler
31
+ import com.swmansion.gesturehandler.dispatchEvent
32
+
17
33
  // NativeModule.onCatalystInstanceDestroy() was deprecated in favor of NativeModule.invalidate()
18
34
  // ref: https://github.com/facebook/react-native/commit/18c8417290823e67e211bde241ae9dde27b72f17
19
35
 
@@ -21,8 +37,8 @@ import java.util.*
21
37
  // ref: https://github.com/facebook/react-native/commit/acbf9e18ea666b07c1224a324602a41d0a66985e
22
38
  @Suppress("DEPRECATION")
23
39
  @ReactModule(name = RNGestureHandlerModule.MODULE_NAME)
24
- class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
25
- : ReactContextBaseJavaModule(reactContext), GestureHandlerStateManager {
40
+ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) :
41
+ ReactContextBaseJavaModule(reactContext), GestureHandlerStateManager {
26
42
  private abstract class HandlerFactory<T : GestureHandler<T>> : RNGestureHandlerEventDataExtractor<T> {
27
43
  abstract val type: Class<T>
28
44
  abstract val name: String
@@ -63,7 +79,8 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
63
79
  super.configure(handler, config)
64
80
  if (config.hasKey(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)) {
65
81
  handler.setShouldActivateOnStart(
66
- config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START))
82
+ config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)
83
+ )
67
84
  }
68
85
  if (config.hasKey(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION)) {
69
86
  handler.setDisallowInterruption(config.getBoolean(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION))
@@ -352,7 +369,9 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
352
369
  @ReactMethod
353
370
  @Suppress("UNCHECKED_CAST")
354
371
  fun <T : GestureHandler<T>> createGestureHandler(
355
- handlerName: String, handlerTag: Int, config: ReadableMap,
372
+ handlerName: String,
373
+ handlerTag: Int,
374
+ config: ReadableMap,
356
375
  ) {
357
376
  for (handlerFactory in handlerFactories as Array<HandlerFactory<T>>) {
358
377
  if (handlerFactory.name == handlerName) {
@@ -519,7 +538,11 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
519
538
  sendEventForReanimated(event)
520
539
  } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT) {
521
540
  // Animated with useNativeDriver: true
522
- val event = RNGestureHandlerEvent.obtain(handler, handlerFactory)
541
+ val event = RNGestureHandlerEvent.obtain(
542
+ handler,
543
+ handlerFactory,
544
+ useTopPrefixedName = BuildConfig.REACT_NATIVE_MINOR_VERSION >= 71
545
+ )
523
546
  sendEventForNativeAnimatedEvent(event)
524
547
  } else if (handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API) {
525
548
  // JS function, Animated.event with useNativeDriver: false using old API
@@ -551,8 +574,9 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
551
574
  // Reanimated worklet
552
575
  val event = RNGestureHandlerStateChangeEvent.obtain(handler, newState, oldState, handlerFactory)
553
576
  sendEventForReanimated(event)
554
- } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT
555
- || handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API) {
577
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT ||
578
+ handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API
579
+ ) {
556
580
  // JS function or Animated.event with useNativeDriver: false with old API
557
581
  if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
558
582
  val data = RNGestureHandlerStateChangeEvent.createEventData(handler, handlerFactory, newState, oldState)
@@ -570,13 +594,14 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
570
594
 
571
595
  private fun <T : GestureHandler<T>> onTouchEvent(handler: T) {
572
596
  // triggers onTouchesDown, onTouchesMove, onTouchesUp, onTouchesCancelled callbacks on the JS side
573
-
597
+
574
598
  if (handler.tag < 0) {
575
599
  // root containers use negative tags, we don't need to dispatch events for them to the JS
576
600
  return
577
601
  }
578
- if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE
579
- || handler.state == GestureHandler.STATE_UNDETERMINED || handler.view != null) {
602
+ if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE ||
603
+ handler.state == GestureHandler.STATE_UNDETERMINED || handler.view != null
604
+ ) {
580
605
  if (handler.actionType == GestureHandler.ACTION_TYPE_REANIMATED_WORKLET) {
581
606
  // Reanimated worklet
582
607
  val event = RNGestureHandlerTouchEvent.obtain(handler)
@@ -3,8 +3,8 @@ package com.swmansion.gesturehandler.react
3
3
  import android.util.SparseArray
4
4
  import android.view.View
5
5
  import com.facebook.react.bridge.UiThreadUtil
6
- import com.swmansion.gesturehandler.GestureHandler
7
- import com.swmansion.gesturehandler.GestureHandlerRegistry
6
+ import com.swmansion.gesturehandler.core.GestureHandler
7
+ import com.swmansion.gesturehandler.core.GestureHandlerRegistry
8
8
  import java.util.*
9
9
 
10
10
  class RNGestureHandlerRegistry : GestureHandlerRegistry {
@@ -9,9 +9,8 @@ import com.facebook.react.bridge.ReactContext
9
9
  import com.facebook.react.bridge.UiThreadUtil
10
10
  import com.facebook.react.common.ReactConstants
11
11
  import com.facebook.react.uimanager.RootView
12
- import com.facebook.react.views.modal.ReactModalHostView
13
- import com.swmansion.gesturehandler.GestureHandler
14
- import com.swmansion.gesturehandler.GestureHandlerOrchestrator
12
+ import com.swmansion.gesturehandler.core.GestureHandler
13
+ import com.swmansion.gesturehandler.core.GestureHandlerOrchestrator
15
14
 
16
15
  class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView: ViewGroup) {
17
16
  private val orchestrator: GestureHandlerOrchestrator?
@@ -29,9 +28,11 @@ class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView:
29
28
  rootView = findRootViewTag(wrappedView)
30
29
  Log.i(
31
30
  ReactConstants.TAG,
32
- "[GESTURE HANDLER] Initialize gesture handler for root view $rootView")
31
+ "[GESTURE HANDLER] Initialize gesture handler for root view $rootView"
32
+ )
33
33
  orchestrator = GestureHandlerOrchestrator(
34
- wrappedView, registry, RNViewConfigurationHelper()).apply {
34
+ wrappedView, registry, RNViewConfigurationHelper()
35
+ ).apply {
35
36
  minimumAlphaForTraversal = MIN_ALPHA_FOR_TOUCH
36
37
  }
37
38
  jsGestureHandler = RootViewGestureHandler().apply { tag = -wrappedViewTag }
@@ -45,7 +46,8 @@ class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView:
45
46
  fun tearDown() {
46
47
  Log.i(
47
48
  ReactConstants.TAG,
48
- "[GESTURE HANDLER] Tearing down gesture handler registered for root view $rootView")
49
+ "[GESTURE HANDLER] Tearing down gesture handler registered for root view $rootView"
50
+ )
49
51
  val module = context.getNativeModule(RNGestureHandlerModule::class.java)!!
50
52
  with(module) {
51
53
  registry.dropHandler(jsGestureHandler!!.tag)
@@ -4,12 +4,10 @@ import android.content.Context
4
4
  import android.util.Log
5
5
  import android.view.MotionEvent
6
6
  import android.view.ViewGroup
7
- import android.view.ViewParent
8
7
  import com.facebook.react.bridge.ReactContext
9
8
  import com.facebook.react.bridge.UiThreadUtil
10
9
  import com.facebook.react.common.ReactConstants
11
10
  import com.facebook.react.uimanager.RootView
12
- import com.facebook.react.views.modal.ReactModalHostView
13
11
  import com.facebook.react.views.view.ReactViewGroup
14
12
 
15
13
  class RNGestureHandlerRootView(context: Context?) : ReactViewGroup(context) {
@@ -13,7 +13,8 @@ import com.facebook.react.viewmanagers.RNGestureHandlerRootViewManagerInterface
13
13
  * to be provided.
14
14
  */
15
15
  @ReactModule(name = RNGestureHandlerRootViewManager.REACT_CLASS)
16
- class RNGestureHandlerRootViewManager : ViewGroupManager<RNGestureHandlerRootView>(),
16
+ class RNGestureHandlerRootViewManager :
17
+ ViewGroupManager<RNGestureHandlerRootView>(),
17
18
  RNGestureHandlerRootViewManagerInterface<RNGestureHandlerRootView> {
18
19
  private val mDelegate: ViewManagerDelegate<RNGestureHandlerRootView>
19
20
 
@@ -41,7 +42,8 @@ class RNGestureHandlerRootViewManager : ViewGroupManager<RNGestureHandlerRootVie
41
42
  RNGestureHandlerEvent.EVENT_NAME to
42
43
  mutableMapOf("registrationName" to RNGestureHandlerEvent.EVENT_NAME),
43
44
  RNGestureHandlerStateChangeEvent.EVENT_NAME to
44
- mutableMapOf("registrationName" to RNGestureHandlerStateChangeEvent.EVENT_NAME))
45
+ mutableMapOf("registrationName" to RNGestureHandlerStateChangeEvent.EVENT_NAME)
46
+ )
45
47
 
46
48
  companion object {
47
49
  const val REACT_CLASS = "RNGestureHandlerRootView"
@@ -11,7 +11,7 @@ import com.facebook.react.bridge.Arguments
11
11
  import com.facebook.react.bridge.WritableMap
12
12
  import com.facebook.react.uimanager.events.Event
13
13
  import com.facebook.react.uimanager.events.RCTEventEmitter
14
- import com.swmansion.gesturehandler.GestureHandler
14
+ import com.swmansion.gesturehandler.core.GestureHandler
15
15
 
16
16
  class RNGestureHandlerStateChangeEvent private constructor() : Event<RNGestureHandlerStateChangeEvent>() {
17
17
  private var extraData: WritableMap? = null
@@ -57,16 +57,16 @@ class RNGestureHandlerStateChangeEvent private constructor() : Event<RNGestureHa
57
57
  init(handler, newState, oldState, dataExtractor)
58
58
  }
59
59
 
60
- fun <T: GestureHandler<T>> createEventData(
60
+ fun <T : GestureHandler<T>> createEventData(
61
61
  handler: T,
62
62
  dataExtractor: RNGestureHandlerEventDataExtractor<T>?,
63
63
  newState: Int,
64
64
  oldState: Int,
65
65
  ): WritableMap = Arguments.createMap().apply {
66
- dataExtractor?.extractEventData(handler, this)
67
- putInt("handlerTag", handler.tag)
68
- putInt("state", newState)
69
- putInt("oldState", oldState)
70
- }
66
+ dataExtractor?.extractEventData(handler, this)
67
+ putInt("handlerTag", handler.tag)
68
+ putInt("state", newState)
69
+ putInt("oldState", oldState)
70
+ }
71
71
  }
72
72
  }
@@ -5,7 +5,7 @@ import com.facebook.react.bridge.Arguments
5
5
  import com.facebook.react.bridge.WritableMap
6
6
  import com.facebook.react.uimanager.events.Event
7
7
  import com.facebook.react.uimanager.events.RCTEventEmitter
8
- import com.swmansion.gesturehandler.GestureHandler
8
+ import com.swmansion.gesturehandler.core.GestureHandler
9
9
 
10
10
  class RNGestureHandlerTouchEvent private constructor() : Event<RNGestureHandlerTouchEvent>() {
11
11
  private var extraData: WritableMap? = null
@@ -43,11 +43,11 @@ class RNGestureHandlerTouchEvent private constructor() : Event<RNGestureHandlerT
43
43
  private val EVENTS_POOL = Pools.SynchronizedPool<RNGestureHandlerTouchEvent>(TOUCH_EVENTS_POOL_SIZE)
44
44
 
45
45
  fun <T : GestureHandler<T>> obtain(handler: T): RNGestureHandlerTouchEvent =
46
- (EVENTS_POOL.acquire() ?: RNGestureHandlerTouchEvent()).apply {
47
- init(handler)
48
- }
46
+ (EVENTS_POOL.acquire() ?: RNGestureHandlerTouchEvent()).apply {
47
+ init(handler)
48
+ }
49
49
 
50
- fun <T: GestureHandler<T>> createEventData(handler: T,): WritableMap = Arguments.createMap().apply {
50
+ fun <T : GestureHandler<T>> createEventData(handler: T,): WritableMap = Arguments.createMap().apply {
51
51
  putInt("handlerTag", handler.tag)
52
52
  putInt("state", handler.state)
53
53
  putInt("numberOfTouches", handler.trackedPointersCount)
@@ -5,8 +5,8 @@ import android.view.ViewGroup
5
5
  import com.facebook.react.uimanager.PointerEvents
6
6
  import com.facebook.react.uimanager.ReactPointerEventsView
7
7
  import com.facebook.react.views.view.ReactViewGroup
8
- import com.swmansion.gesturehandler.PointerEventsConfig
9
- import com.swmansion.gesturehandler.ViewConfigurationHelper
8
+ import com.swmansion.gesturehandler.core.PointerEventsConfig
9
+ import com.swmansion.gesturehandler.core.ViewConfigurationHelper
10
10
 
11
11
  class RNViewConfigurationHelper : ViewConfigurationHelper {
12
12
  override fun getPointerEventsConfigForView(view: View): PointerEventsConfig {