react-native-gesture-handler 2.7.1 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
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 {