diff --git a/CHANGELOG.md b/CHANGELOG.md index 5acab8edd496e..234181c1851f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ Package-specific changes not released in any SDK will be added here just before - Updated `@shopify/flash-list` from `1.1.0` to `1.3.0`. ([#19317](https://github.com/expo/expo/pull/19317) by [@kudo](https://github.com/kudo)) - Updated `react-native-view-shot` from `3.3.0` to `3.4.0`. ([#19405](https://github.com/expo/expo/pull/19405) by [@douglowder](https://github.com/douglowder)) - Updated `react-native-webview` from `11.23.0` to `11.23.1`. ([#19375](https://github.com/expo/expo/pull/19375) by [@aleqsio](https://github.com/aleqsio)) -- Updated `react-native-gesture-handler` from `2.5.0` to `2.7.0`. ([#19362](https://github.com/expo/expo/pull/19362) by [@tsapeta](https://github.com/tsapeta)) +- Updated `react-native-gesture-handler` from `2.5.0` to `2.8.0`. ([#19362](https://github.com/expo/expo/pull/19362) & [#19654](https://github.com/expo/expo/pull/19654) by [@tsapeta](https://github.com/tsapeta) & [@lukmccall](https://github.com/lukmccall)) - Updated `@react-native-community/netinfo` from `9.3.0` to `9.3.3`. ([#19421](https://github.com/expo/expo/pull/19421) by [@douglowder](https://github.com/douglowder)) - Updated `@react-native-picker/picker` from `2.4.2` to `2.4.6`. ([#19390](https://github.com/expo/expo/pull/19390) by [@aleqsio](https://github.com/aleqsio)) - Updated `react-native-screens` from `3.15.0` to `3.18.0`. ([#19383](https://github.com/expo/expo/pull/19383) by [@tsapeta](https://github.com/tsapeta)) diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/build.gradle b/android/vendored/unversioned/react-native-gesture-handler/android/build.gradle index f0e3e1708ebf5..211382b95ff35 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/build.gradle +++ b/android/vendored/unversioned/react-native-gesture-handler/android/build.gradle @@ -5,11 +5,17 @@ buildscript { def kotlin_version = rootProject.ext.has('kotlinVersion') ? rootProject.ext.get('kotlinVersion') : project.properties['RNGH_kotlinVersion'] repositories { + maven { + url "https://plugins.gradle.org/m2/" + } mavenCentral() + google() } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") + classpath("com.android.tools.build:gradle:7.2.1") + classpath("com.diffplug.spotless:spotless-plugin-gradle:6.7.2") } } @@ -48,6 +54,10 @@ if (isNewArchitectureEnabled()) { apply plugin: 'com.android.library' apply plugin: 'kotlin-android' +if (project == rootProject) { + apply from: "spotless.gradle" +} + def safeExtGet(prop, fallback) { rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback } @@ -164,13 +174,8 @@ android { exclude "**/libreact_render*.so" } - // Include "lib/" as sources, unfortunately react-native link can't handle - // setting up alternative gradle modules. We still have "lib" defined as a - // standalone gradle module just to be used in AndroidNativeExample sourceSets.main { java { - srcDirs += 'lib/src/main/java' - // Include "common/" only when it's not provided by Reanimated to mitigate // multiple definitions of the same class preventing build if (shouldUseCommonInterfaceFromReanimated()) { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/gradle.properties b/android/vendored/unversioned/react-native-gesture-handler/android/gradle.properties deleted file mode 100644 index bb5cbe32541a0..0000000000000 --- a/android/vendored/unversioned/react-native-gesture-handler/android/gradle.properties +++ /dev/null @@ -1,19 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -RNGH_kotlinVersion=1.6.21 diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/AndroidManifest.xml b/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/AndroidManifest.xml deleted file mode 100644 index 5fa4c9c519414..0000000000000 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/test/java/com/swmansion/gesturehandler/ExampleUnitTest.java b/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/test/java/com/swmansion/gesturehandler/ExampleUnitTest.java deleted file mode 100644 index b258220b8e2f3..0000000000000 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/test/java/com/swmansion/gesturehandler/ExampleUnitTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.swmansion.gesturehandler; - -import org.junit.Test; - -import static org.junit.Assert.*; - -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt b/android/vendored/unversioned/react-native-gesture-handler/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt index 6202cde89b3a9..9e81005ddfbf8 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt @@ -4,7 +4,7 @@ import com.facebook.react.bridge.ReactContext import com.facebook.react.uimanager.events.Event class ReanimatedEventDispatcher { - fun >sendEvent(event: T, reactApplicationContext: ReactContext) { - // no-op - } + fun >sendEvent(event: T, reactApplicationContext: ReactContext) { + // no-op + } } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt b/android/vendored/unversioned/react-native-gesture-handler/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt index 3abd66529cd15..d1d47301d4182 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt @@ -5,13 +5,13 @@ import com.facebook.react.uimanager.events.Event import com.swmansion.reanimated.ReanimatedModule class ReanimatedEventDispatcher { - private var reanimatedModule: ReanimatedModule? = null + private var reanimatedModule: ReanimatedModule? = null - fun >sendEvent(event: T, reactApplicationContext: ReactContext) { - if (reanimatedModule == null) { - reanimatedModule = reactApplicationContext.getNativeModule(ReanimatedModule::class.java) - } - - reanimatedModule?.nodesManager?.onEventDispatch(event) + fun >sendEvent(event: T, reactApplicationContext: ReactContext) { + if (reanimatedModule == null) { + reanimatedModule = reactApplicationContext.getNativeModule(ReanimatedModule::class.java) } + + reanimatedModule?.nodesManager?.onEventDispatch(event) + } } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/settings.gradle b/android/vendored/unversioned/react-native-gesture-handler/android/settings.gradle deleted file mode 100644 index c8e23f4979eb4..0000000000000 --- a/android/vendored/unversioned/react-native-gesture-handler/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include 'lib' \ No newline at end of file diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt index bdc18b772df1d..2e05de9bfb639 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt @@ -7,6 +7,6 @@ import com.facebook.react.uimanager.common.UIManagerType import com.facebook.react.uimanager.events.Event fun ReactContext.dispatchEvent(event: Event<*>) { - val fabricUIManager = UIManagerHelper.getUIManager(this, UIManagerType.FABRIC) as FabricUIManager - fabricUIManager.eventDispatcher.dispatchEvent(event) + val fabricUIManager = UIManagerHelper.getUIManager(this, UIManagerType.FABRIC) as FabricUIManager + fabricUIManager.eventDispatcher.dispatchEvent(event) } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt index d022eb381e86a..48b7d2a15ad67 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt @@ -4,10 +4,9 @@ import com.facebook.react.ReactPackage import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.uimanager.ViewManager -import com.swmansion.gesturehandler.BuildConfig +import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager import com.swmansion.gesturehandler.react.RNGestureHandlerModule import com.swmansion.gesturehandler.react.RNGestureHandlerRootViewManager -import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager class RNGestureHandlerPackage : ReactPackage { override fun createNativeModules(reactContext: ReactApplicationContext): List { @@ -17,5 +16,6 @@ class RNGestureHandlerPackage : ReactPackage { override fun createViewManagers(reactContext: ReactApplicationContext) = listOf>( RNGestureHandlerRootViewManager(), - RNGestureHandlerButtonViewManager()) + RNGestureHandlerButtonViewManager() + ) } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt similarity index 84% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt index fc2c8ed019bd0..e3078d0dbfc7f 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.os.Handler import android.os.Looper @@ -37,14 +37,17 @@ class FlingGestureHandler : GestureHandler() { private fun tryEndFling(event: MotionEvent) = if ( maxNumberOfPointersSimultaneously == numberOfPointersRequired && - (direction and DIRECTION_RIGHT != 0 && - event.rawX - startX > minAcceptableDelta || - direction and DIRECTION_LEFT != 0 && - startX - event.rawX > minAcceptableDelta || - direction and DIRECTION_UP != 0 && - startY - event.rawY > minAcceptableDelta || - direction and DIRECTION_DOWN != 0 && - event.rawY - startY > minAcceptableDelta)) { + ( + direction and DIRECTION_RIGHT != 0 && + event.rawX - startX > minAcceptableDelta || + direction and DIRECTION_LEFT != 0 && + startX - event.rawX > minAcceptableDelta || + direction and DIRECTION_UP != 0 && + startY - event.rawY > minAcceptableDelta || + direction and DIRECTION_DOWN != 0 && + event.rawY - startY > minAcceptableDelta + ) + ) { handler!!.removeCallbacksAndMessages(null) activate() true diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt similarity index 94% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt index f690e42efb771..2c5f4b31291bb 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.app.Activity import android.content.Context @@ -14,6 +14,7 @@ import com.facebook.react.bridge.Arguments import com.facebook.react.bridge.UiThreadUtil import com.facebook.react.bridge.WritableArray import com.facebook.react.uimanager.PixelUtil +import com.swmansion.gesturehandler.BuildConfig import com.swmansion.gesturehandler.react.RNGestureHandlerTouchEvent import java.lang.IllegalStateException import java.util.* @@ -48,7 +49,6 @@ open class GestureHandler = Array(MAX_POINTERS_COUNT) { null } var needsPointerData = false - private var hitSlop: FloatArray? = null var eventCoalescingKey: Short = 0 private set @@ -127,11 +127,15 @@ open class GestureHandler, event: MotionEvent, e: IllegalArgumentException - ) : Exception(""" + ) : Exception( + """ handler: ${handler::class.simpleName} state: ${handler.state} view: ${handler.view} @@ -324,14 +329,17 @@ open class GestureHandler 0 + return isEnabled && + state != STATE_FAILED && + state != STATE_CANCELLED && + state != STATE_END && + trackedPointersIDsCount > 0 } open fun shouldRequireToWaitForFailure(handler: GestureHandler<*>): Boolean { @@ -745,7 +753,7 @@ open class GestureHandler private fun initPointerProps(size: Int) { var size = size - if (!::pointerProps.isInitialized) { + if (!Companion::pointerProps.isInitialized) { pointerProps = arrayOfNulls(MAX_POINTERS_COUNT) pointerCoords = arrayOfNulls(MAX_POINTERS_COUNT) } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerInteractionController.kt similarity index 91% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerInteractionController.kt index c9dfa2ab4c3cf..97f35d0c3850f 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerInteractionController.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core interface GestureHandlerInteractionController { fun shouldWaitForHandlerFailure(handler: GestureHandler<*>, otherHandler: GestureHandler<*>): Boolean diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt similarity index 96% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt index d4380a2faaed8..5794462956307 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.graphics.Matrix import android.graphics.PointF @@ -134,7 +134,10 @@ class GestureHandlerOrchestrator( // their state is set to END and when the gesture they are waiting for activates they // should be cancelled, however `cancel` was never sent as gestures were already in the END state. // Send synthetic BEGAN -> CANCELLED to properly handle JS logic - otherHandler.dispatchStateChange(GestureHandler.STATE_CANCELLED, GestureHandler.STATE_BEGAN) + otherHandler.dispatchStateChange( + GestureHandler.STATE_CANCELLED, + GestureHandler.STATE_BEGAN + ) } otherHandler.isAwaiting = false } else { @@ -253,10 +256,10 @@ class GestureHandlerOrchestrator( val action = sourceEvent.actionMasked val event = transformEventToViewCoords(handler.view, MotionEvent.obtain(sourceEvent)) - + // Touch events are sent before the handler itself has a chance to process them, // mainly because `onTouchesUp` shoul be send befor gesture finishes. This means that - // the first `onTouchesDown` event is sent before a gesture begins, activation in + // the first `onTouchesDown` event is sent before a gesture begins, activation in // callback for this event causes problems because the handler doesn't have a chance // to initialize itself with starting values of pointer (in pan this causes translation // to be equal to the coordinates of the pointer). The simplest solution is to send @@ -475,9 +478,10 @@ class GestureHandlerOrchestrator( // if the pointer is inside the view but it overflows its parent, handlers attached to the parent // might not have been extracted (pointer might be in a child, but may be outside parent) - if (coords[0] in 0f..view.width.toFloat() && coords[1] in 0f..view.height.toFloat() - && isViewOverflowingParent(view) && extractAncestorHandlers(view, coords, pointerId)) { - found = true + if (coords[0] in 0f..view.width.toFloat() && coords[1] in 0f..view.height.toFloat() && + isViewOverflowingParent(view) && extractAncestorHandlers(view, coords, pointerId) + ) { + found = true } return found @@ -527,8 +531,10 @@ class GestureHandlerOrchestrator( } PointerEventsConfig.BOX_ONLY -> { // This view is the target, its children don't matter - (recordViewHandlersForPointer(view, coords, pointerId) - || shouldHandlerlessViewBecomeTouchTarget(view, coords)) + ( + recordViewHandlersForPointer(view, coords, pointerId) || + shouldHandlerlessViewBecomeTouchTarget(view, coords) + ) } PointerEventsConfig.BOX_NONE -> { // This view can't be the target, but its children might @@ -557,8 +563,10 @@ class GestureHandlerOrchestrator( extractGestureHandlers(view, coords, pointerId) } else false - (recordViewHandlersForPointer(view, coords, pointerId) - || found || shouldHandlerlessViewBecomeTouchTarget(view, coords)) + ( + recordViewHandlersForPointer(view, coords, pointerId) || + found || shouldHandlerlessViewBecomeTouchTarget(view, coords) + ) } } @@ -570,7 +578,6 @@ class GestureHandlerOrchestrator( private fun isClipping(view: View) = view !is ViewGroup || viewConfigHelper.isViewClippingChildren(view) - companion object { // The limit doesn't necessarily need to exists, it was just simpler to implement it that way // it is also more allocation-wise efficient to have a fixed limit @@ -637,14 +644,15 @@ class GestureHandlerOrchestrator( x in 0f..child.width.toFloat() && y in 0f..child.height.toFloat() private fun shouldHandlerWaitForOther(handler: GestureHandler<*>, other: GestureHandler<*>): Boolean { - return handler !== other && (handler.shouldWaitForHandlerFailure(other) - || other.shouldRequireToWaitForFailure(handler)) + return handler !== other && ( + handler.shouldWaitForHandlerFailure(other) || + other.shouldRequireToWaitForFailure(handler) + ) } private fun canRunSimultaneously(a: GestureHandler<*>, b: GestureHandler<*>) = a === b || a.shouldRecognizeSimultaneously(b) || b.shouldRecognizeSimultaneously(a) - private fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, other: GestureHandler<*>): Boolean { if (!handler.hasCommonPointers(other)) { // if two handlers share no common pointer one can never trigger cancel for the other @@ -656,7 +664,8 @@ class GestureHandlerOrchestrator( return false } return if (handler !== other && - (handler.isAwaiting || handler.state == GestureHandler.STATE_ACTIVE)) { + (handler.isAwaiting || handler.state == GestureHandler.STATE_ACTIVE) + ) { // in every other case as long as the handler is about to be activated or already in active // state, we delegate the decision to the implementation of GestureHandler#shouldBeCancelledBy handler.shouldBeCancelledBy(other) @@ -664,8 +673,8 @@ class GestureHandlerOrchestrator( } private fun isFinished(state: Int) = - state == GestureHandler.STATE_CANCELLED - || state == GestureHandler.STATE_FAILED - || state == GestureHandler.STATE_END + state == GestureHandler.STATE_CANCELLED || + state == GestureHandler.STATE_FAILED || + state == GestureHandler.STATE_END } } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerRegistry.kt similarity index 78% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerRegistry.kt index f8f51723cd522..c92862eadd756 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerRegistry.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.view.View import java.util.* diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt similarity index 96% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt index 15f9c395c92ec..5060f6b3db0fe 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.view.MotionEvent diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt similarity index 98% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt index 47a5222c25f09..23a72545a0bfb 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.content.Context import android.os.Handler diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt similarity index 85% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt index f55ecd68f4f40..cdca5725698ea 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.view.MotionEvent diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt similarity index 96% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt index 1ab3048169087..8d0c862a92167 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.os.SystemClock import android.view.MotionEvent @@ -114,7 +114,7 @@ class NativeViewGestureHandler : GestureHandler() { override fun onCancel() { val time = SystemClock.uptimeMillis() val event = MotionEvent.obtain(time, time, MotionEvent.ACTION_CANCEL, 0f, 0f, 0).apply { - action = MotionEvent.ACTION_CANCEL + action = MotionEvent.ACTION_CANCEL } view!!.onTouchEvent(event) } @@ -172,8 +172,8 @@ class NativeViewGestureHandler : GestureHandler() { } private class EditTextHook( - private val handler: NativeViewGestureHandler, - private val editText: ReactEditText + private val handler: NativeViewGestureHandler, + private val editText: ReactEditText ) : NativeViewGestureHandlerHook { private var startX = 0f private var startY = 0f @@ -194,7 +194,7 @@ class NativeViewGestureHandler : GestureHandler() { // of RNGestureHandlerRootHelper so no explicit type checks, but its tag is always negative // also if other handler is NativeViewGestureHandler then don't override the default implementation override fun shouldRecognizeSimultaneously(handler: GestureHandler<*>) = - handler.tag > 0 && handler !is NativeViewGestureHandler + handler.tag > 0 && handler !is NativeViewGestureHandler override fun wantsToHandleEventBeforeActivation() = true diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/OnTouchEventListener.kt similarity index 87% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/OnTouchEventListener.kt index 2bdd7fa75e632..2784d99dd98f9 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/OnTouchEventListener.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.view.MotionEvent diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt similarity index 97% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt index 7caf07fa55fc9..ad74f04e71e4d 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.content.Context import android.os.Handler @@ -6,8 +6,8 @@ import android.os.Looper import android.view.MotionEvent import android.view.VelocityTracker import android.view.ViewConfiguration -import com.swmansion.gesturehandler.GestureUtils.getLastPointerX -import com.swmansion.gesturehandler.GestureUtils.getLastPointerY +import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerX +import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerY class PanGestureHandler(context: Context?) : GestureHandler() { var velocityX = 0f @@ -173,12 +173,14 @@ class PanGestureHandler(context: Context?) : GestureHandler() } val vx = velocityX if (minVelocityX != MIN_VALUE_IGNORE && - (minVelocityX < 0 && vx <= minVelocityX || minVelocityX in 0.0f..vx)) { + (minVelocityX < 0 && vx <= minVelocityX || minVelocityX in 0.0f..vx) + ) { return true } val vy = velocityY if (minVelocityY != MIN_VALUE_IGNORE && - (minVelocityY < 0 && vx <= minVelocityY || minVelocityY in 0.0f..vx)) { + (minVelocityY < 0 && vx <= minVelocityY || minVelocityY in 0.0f..vx) + ) { return true } val velocitySq = vx * vx + vy * vy diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt similarity index 92% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt index 4f8c1dfe0ca90..28e858938219e 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.graphics.PointF import android.view.MotionEvent @@ -18,7 +18,8 @@ class PinchGestureHandler : GestureHandler() { private var scaleGestureDetector: ScaleGestureDetector? = null private var startingSpan = 0f private var spanSlop = 0f - private val gestureListener: ScaleGestureDetector.OnScaleGestureListener = object : ScaleGestureDetector.OnScaleGestureListener { + private val gestureListener: ScaleGestureDetector.OnScaleGestureListener = object : + ScaleGestureDetector.OnScaleGestureListener { override fun onScale(detector: ScaleGestureDetector): Boolean { val prevScaleFactor: Double = scale scale *= detector.scaleFactor.toDouble() @@ -26,8 +27,9 @@ class PinchGestureHandler : GestureHandler() { if (delta > 0) { velocity = (scale - prevScaleFactor) / delta } - if (abs(startingSpan - detector.currentSpan) >= spanSlop - && state == STATE_BEGAN) { + if (abs(startingSpan - detector.currentSpan) >= spanSlop && + state == STATE_BEGAN + ) { activate() } return true diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PointerEventsConfig.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PointerEventsConfig.kt similarity index 90% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PointerEventsConfig.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PointerEventsConfig.kt index d85ef12f3607e..c84c931bf7b53 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/PointerEventsConfig.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/PointerEventsConfig.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core enum class PointerEventsConfig { /** diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt similarity index 98% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt index 6da6049ddc4a8..48cdccd60ee76 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.view.MotionEvent import kotlin.math.atan2 diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt similarity index 94% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt index aa6a5b599f8eb..d3d12f460173a 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt @@ -1,8 +1,8 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.graphics.PointF import android.view.MotionEvent -import com.swmansion.gesturehandler.RotationGestureDetector.OnRotationGestureListener +import com.swmansion.gesturehandler.core.RotationGestureDetector.OnRotationGestureListener import kotlin.math.abs class RotationGestureHandler : GestureHandler() { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ScaleGestureDetector.java b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java similarity index 99% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ScaleGestureDetector.java rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java index 32c266367baf5..8761b9ea2d512 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ScaleGestureDetector.java +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java @@ -5,7 +5,7 @@ * Modified line 189 to set initial min span to 0 instead of copying it from the system configuration */ -package com.swmansion.gesturehandler; +package com.swmansion.gesturehandler.core; import android.content.Context; import android.os.Build; diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt similarity index 96% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt index 048abd7b1123d..cb8adc77b1080 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt @@ -1,10 +1,10 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.os.Handler import android.os.Looper import android.view.MotionEvent -import com.swmansion.gesturehandler.GestureUtils.getLastPointerX -import com.swmansion.gesturehandler.GestureUtils.getLastPointerY +import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerX +import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerY import kotlin.math.abs class TapGestureHandler : GestureHandler() { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt similarity index 87% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt index 131f4869613e8..c8069f3ea09e2 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt @@ -1,4 +1,4 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.core import android.view.View import android.view.ViewGroup diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt similarity index 60% rename from android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt rename to android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt index a0c959ddec9a9..5f00002d18d9e 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt @@ -1,11 +1,11 @@ -package com.swmansion.gesturehandler +package com.swmansion.gesturehandler.react import com.facebook.react.bridge.ReactContext import com.facebook.react.modules.core.DeviceEventManagerModule import com.facebook.react.uimanager.UIManagerModule val ReactContext.deviceEventEmitter: DeviceEventManagerModule.RCTDeviceEventEmitter - get() = this.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) + get() = this.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) val ReactContext.UIManager: UIManagerModule - get() = this.getNativeModule(UIManagerModule::class.java)!! + get() = this.getNativeModule(UIManagerModule::class.java)!! diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt index 7451e47a51382..740932f13cad6 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt @@ -27,7 +27,7 @@ import com.facebook.react.uimanager.ViewProps import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerInterface -import com.swmansion.gesturehandler.NativeViewGestureHandler +import com.swmansion.gesturehandler.core.NativeViewGestureHandler import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager.ButtonViewGroup @ReactModule(name = RNGestureHandlerButtonViewManager.REACT_CLASS) @@ -35,7 +35,7 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager(), R private val mDelegate: ViewManagerDelegate init { - mDelegate = RNGestureHandlerButtonManagerDelegate(this) + mDelegate = RNGestureHandlerButtonManagerDelegate(this) } override fun getName() = REACT_CLASS @@ -91,7 +91,8 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager(), R return mDelegate } - class ButtonViewGroup(context: Context?) : ViewGroup(context), + class ButtonViewGroup(context: Context?) : + ViewGroup(context), NativeViewGestureHandler.NativeViewGestureHandlerHook { // Using object because of handling null representing no value set. var rippleColor: Int? = null @@ -254,9 +255,9 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager(), R } val drawable = RippleDrawable( - colorStateList, - null, - if (useBorderlessDrawable) null else ShapeDrawable(RectShape()) + colorStateList, + null, + if (useBorderlessDrawable) null else ShapeDrawable(RectShape()) ) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && rippleRadius != null) { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt index 471ce311ef518..beefe28a99297 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt @@ -1,12 +1,8 @@ package com.swmansion.gesturehandler.react import android.content.Context -import android.os.Bundle import android.util.AttributeSet -import android.view.MotionEvent -import com.facebook.react.ReactInstanceManager import com.facebook.react.ReactRootView -import java.lang.Exception @Deprecated(message = "Use component instead. Check gesture handler installation instructions in documentation for more information.") class RNGestureHandlerEnabledRootView : ReactRootView { @@ -14,6 +10,6 @@ class RNGestureHandlerEnabledRootView : ReactRootView { constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {} init { - throw UnsupportedOperationException("Your application is configured to use RNGestureHandlerEnabledRootView which is no longer supported. You can see how to migrate to here: https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot") + throw UnsupportedOperationException("Your application is configured to use RNGestureHandlerEnabledRootView which is no longer supported. You can see how to migrate to here: https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot") } } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt index 10ca971db7daf..a523c6a8dbac7 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt @@ -11,7 +11,7 @@ import com.facebook.react.bridge.Arguments import com.facebook.react.bridge.WritableMap import com.facebook.react.uimanager.events.Event import com.facebook.react.uimanager.events.RCTEventEmitter -import com.swmansion.gesturehandler.GestureHandler +import com.swmansion.gesturehandler.core.GestureHandler class RNGestureHandlerEvent private constructor() : Event() { private var extraData: WritableMap? = null @@ -53,13 +53,13 @@ class RNGestureHandlerEvent private constructor() : Event init(handler, dataExtractor) } - fun > createEventData( + fun > createEventData( handler: T, dataExtractor: RNGestureHandlerEventDataExtractor? ): WritableMap = Arguments.createMap().apply { - dataExtractor?.extractEventData(handler, this) - putInt("handlerTag", handler.tag) - putInt("state", handler.state) - } + dataExtractor?.extractEventData(handler, this) + putInt("handlerTag", handler.tag) + putInt("state", handler.state) + } } } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt index 3a4ce05e83034..58e724914971f 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt @@ -1,7 +1,7 @@ package com.swmansion.gesturehandler.react import com.facebook.react.bridge.WritableMap -import com.swmansion.gesturehandler.GestureHandler +import com.swmansion.gesturehandler.core.GestureHandler interface RNGestureHandlerEventDataExtractor> { fun extractEventData(handler: T, eventData: WritableMap) diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt index 682eeec010e89..2af01ee73b296 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt @@ -2,9 +2,9 @@ package com.swmansion.gesturehandler.react import android.util.SparseArray import com.facebook.react.bridge.ReadableMap -import com.swmansion.gesturehandler.GestureHandler -import com.swmansion.gesturehandler.GestureHandlerInteractionController -import com.swmansion.gesturehandler.NativeViewGestureHandler +import com.swmansion.gesturehandler.core.GestureHandler +import com.swmansion.gesturehandler.core.GestureHandlerInteractionController +import com.swmansion.gesturehandler.core.NativeViewGestureHandler class RNGestureHandlerInteractionManager : GestureHandlerInteractionController { private val waitForRelations = SparseArray() diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt index c710e85e1e823..bafdedf0adab8 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt @@ -3,17 +3,33 @@ package com.swmansion.gesturehandler.react import android.content.Context import android.util.Log import android.view.MotionEvent -import android.view.ViewGroup import com.facebook.react.ReactRootView -import com.facebook.react.bridge.* +import com.facebook.react.bridge.JSApplicationIllegalArgumentException +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReactContextBaseJavaModule +import com.facebook.react.bridge.ReactMethod +import com.facebook.react.bridge.ReadableMap +import com.facebook.react.bridge.ReadableType +import com.facebook.react.bridge.WritableMap import com.facebook.react.module.annotations.ReactModule import com.facebook.react.uimanager.PixelUtil -import com.facebook.react.uimanager.UIBlock import com.facebook.react.uimanager.events.Event import com.facebook.soloader.SoLoader import com.swmansion.common.GestureHandlerStateManager -import com.swmansion.gesturehandler.* -import java.util.* +import com.swmansion.gesturehandler.BuildConfig +import com.swmansion.gesturehandler.ReanimatedEventDispatcher +import com.swmansion.gesturehandler.core.FlingGestureHandler +import com.swmansion.gesturehandler.core.GestureHandler +import com.swmansion.gesturehandler.core.LongPressGestureHandler +import com.swmansion.gesturehandler.core.ManualGestureHandler +import com.swmansion.gesturehandler.core.NativeViewGestureHandler +import com.swmansion.gesturehandler.core.OnTouchEventListener +import com.swmansion.gesturehandler.core.PanGestureHandler +import com.swmansion.gesturehandler.core.PinchGestureHandler +import com.swmansion.gesturehandler.core.RotationGestureHandler +import com.swmansion.gesturehandler.core.TapGestureHandler +import com.swmansion.gesturehandler.dispatchEvent + // NativeModule.onCatalystInstanceDestroy() was deprecated in favor of NativeModule.invalidate() // ref: https://github.com/facebook/react-native/commit/18c8417290823e67e211bde241ae9dde27b72f17 @@ -21,8 +37,8 @@ import java.util.* // ref: https://github.com/facebook/react-native/commit/acbf9e18ea666b07c1224a324602a41d0a66985e @Suppress("DEPRECATION") @ReactModule(name = RNGestureHandlerModule.MODULE_NAME) -class RNGestureHandlerModule(reactContext: ReactApplicationContext?) - : ReactContextBaseJavaModule(reactContext), GestureHandlerStateManager { +class RNGestureHandlerModule(reactContext: ReactApplicationContext?) : + ReactContextBaseJavaModule(reactContext), GestureHandlerStateManager { private abstract class HandlerFactory> : RNGestureHandlerEventDataExtractor { abstract val type: Class abstract val name: String @@ -63,7 +79,8 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) super.configure(handler, config) if (config.hasKey(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)) { handler.setShouldActivateOnStart( - config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)) + config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START) + ) } if (config.hasKey(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION)) { handler.setDisallowInterruption(config.getBoolean(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION)) @@ -352,7 +369,9 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) @ReactMethod @Suppress("UNCHECKED_CAST") fun > createGestureHandler( - handlerName: String, handlerTag: Int, config: ReadableMap, + handlerName: String, + handlerTag: Int, + config: ReadableMap, ) { for (handlerFactory in handlerFactories as Array>) { if (handlerFactory.name == handlerName) { @@ -551,8 +570,9 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) // Reanimated worklet val event = RNGestureHandlerStateChangeEvent.obtain(handler, newState, oldState, handlerFactory) sendEventForReanimated(event) - } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT - || handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API) { + } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT || + handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API + ) { // JS function or Animated.event with useNativeDriver: false with old API if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { val data = RNGestureHandlerStateChangeEvent.createEventData(handler, handlerFactory, newState, oldState) @@ -570,13 +590,14 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) private fun > onTouchEvent(handler: T) { // triggers onTouchesDown, onTouchesMove, onTouchesUp, onTouchesCancelled callbacks on the JS side - + if (handler.tag < 0) { // root containers use negative tags, we don't need to dispatch events for them to the JS return } - if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE - || handler.state == GestureHandler.STATE_UNDETERMINED || handler.view != null) { + if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE || + handler.state == GestureHandler.STATE_UNDETERMINED || handler.view != null + ) { if (handler.actionType == GestureHandler.ACTION_TYPE_REANIMATED_WORKLET) { // Reanimated worklet val event = RNGestureHandlerTouchEvent.obtain(handler) diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt index 6c100f37a1f36..45bb76134e7e6 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt @@ -3,8 +3,8 @@ package com.swmansion.gesturehandler.react import android.util.SparseArray import android.view.View import com.facebook.react.bridge.UiThreadUtil -import com.swmansion.gesturehandler.GestureHandler -import com.swmansion.gesturehandler.GestureHandlerRegistry +import com.swmansion.gesturehandler.core.GestureHandler +import com.swmansion.gesturehandler.core.GestureHandlerRegistry import java.util.* class RNGestureHandlerRegistry : GestureHandlerRegistry { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt index 2a3442e7c9f81..b2f229c74a734 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt @@ -9,9 +9,8 @@ import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.UiThreadUtil import com.facebook.react.common.ReactConstants import com.facebook.react.uimanager.RootView -import com.facebook.react.views.modal.ReactModalHostView -import com.swmansion.gesturehandler.GestureHandler -import com.swmansion.gesturehandler.GestureHandlerOrchestrator +import com.swmansion.gesturehandler.core.GestureHandler +import com.swmansion.gesturehandler.core.GestureHandlerOrchestrator class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView: ViewGroup) { private val orchestrator: GestureHandlerOrchestrator? @@ -29,9 +28,11 @@ class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView: rootView = findRootViewTag(wrappedView) Log.i( ReactConstants.TAG, - "[GESTURE HANDLER] Initialize gesture handler for root view $rootView") + "[GESTURE HANDLER] Initialize gesture handler for root view $rootView" + ) orchestrator = GestureHandlerOrchestrator( - wrappedView, registry, RNViewConfigurationHelper()).apply { + wrappedView, registry, RNViewConfigurationHelper() + ).apply { minimumAlphaForTraversal = MIN_ALPHA_FOR_TOUCH } jsGestureHandler = RootViewGestureHandler().apply { tag = -wrappedViewTag } @@ -45,7 +46,8 @@ class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView: fun tearDown() { Log.i( ReactConstants.TAG, - "[GESTURE HANDLER] Tearing down gesture handler registered for root view $rootView") + "[GESTURE HANDLER] Tearing down gesture handler registered for root view $rootView" + ) val module = context.getNativeModule(RNGestureHandlerModule::class.java)!! with(module) { registry.dropHandler(jsGestureHandler!!.tag) diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt index da3098fd03218..953d3f3d74250 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt @@ -4,12 +4,10 @@ import android.content.Context import android.util.Log import android.view.MotionEvent import android.view.ViewGroup -import android.view.ViewParent import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.UiThreadUtil import com.facebook.react.common.ReactConstants import com.facebook.react.uimanager.RootView -import com.facebook.react.views.modal.ReactModalHostView import com.facebook.react.views.view.ReactViewGroup class RNGestureHandlerRootView(context: Context?) : ReactViewGroup(context) { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt index e310c04314b07..6adf7289744f0 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt @@ -13,7 +13,8 @@ import com.facebook.react.viewmanagers.RNGestureHandlerRootViewManagerInterface * to be provided. */ @ReactModule(name = RNGestureHandlerRootViewManager.REACT_CLASS) -class RNGestureHandlerRootViewManager : ViewGroupManager(), +class RNGestureHandlerRootViewManager : + ViewGroupManager(), RNGestureHandlerRootViewManagerInterface { private val mDelegate: ViewManagerDelegate @@ -41,7 +42,8 @@ class RNGestureHandlerRootViewManager : ViewGroupManager() { private var extraData: WritableMap? = null @@ -57,16 +57,16 @@ class RNGestureHandlerStateChangeEvent private constructor() : Event> createEventData( + fun > createEventData( handler: T, dataExtractor: RNGestureHandlerEventDataExtractor?, newState: Int, oldState: Int, ): WritableMap = Arguments.createMap().apply { - dataExtractor?.extractEventData(handler, this) - putInt("handlerTag", handler.tag) - putInt("state", newState) - putInt("oldState", oldState) - } + dataExtractor?.extractEventData(handler, this) + putInt("handlerTag", handler.tag) + putInt("state", newState) + putInt("oldState", oldState) + } } } diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt index 88f0ece7e5e00..63626bad7d1a7 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt @@ -5,7 +5,7 @@ import com.facebook.react.bridge.Arguments import com.facebook.react.bridge.WritableMap import com.facebook.react.uimanager.events.Event import com.facebook.react.uimanager.events.RCTEventEmitter -import com.swmansion.gesturehandler.GestureHandler +import com.swmansion.gesturehandler.core.GestureHandler class RNGestureHandlerTouchEvent private constructor() : Event() { private var extraData: WritableMap? = null @@ -43,11 +43,11 @@ class RNGestureHandlerTouchEvent private constructor() : Event(TOUCH_EVENTS_POOL_SIZE) fun > obtain(handler: T): RNGestureHandlerTouchEvent = - (EVENTS_POOL.acquire() ?: RNGestureHandlerTouchEvent()).apply { - init(handler) - } + (EVENTS_POOL.acquire() ?: RNGestureHandlerTouchEvent()).apply { + init(handler) + } - fun > createEventData(handler: T,): WritableMap = Arguments.createMap().apply { + fun > createEventData(handler: T,): WritableMap = Arguments.createMap().apply { putInt("handlerTag", handler.tag) putInt("state", handler.state) putInt("numberOfTouches", handler.trackedPointersCount) diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt index d33c4f3034083..2ef71c0e522fa 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt @@ -5,8 +5,8 @@ import android.view.ViewGroup import com.facebook.react.uimanager.PointerEvents import com.facebook.react.uimanager.ReactPointerEventsView import com.facebook.react.views.view.ReactViewGroup -import com.swmansion.gesturehandler.PointerEventsConfig -import com.swmansion.gesturehandler.ViewConfigurationHelper +import com.swmansion.gesturehandler.core.PointerEventsConfig +import com.swmansion.gesturehandler.core.ViewConfigurationHelper class RNViewConfigurationHelper : ViewConfigurationHelper { override fun getPointerEventsConfigForView(view: View): PointerEventsConfig { diff --git a/android/vendored/unversioned/react-native-gesture-handler/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt b/android/vendored/unversioned/react-native-gesture-handler/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt index 757956c9eaa7f..7861838735ceb 100644 --- a/android/vendored/unversioned/react-native-gesture-handler/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +++ b/android/vendored/unversioned/react-native-gesture-handler/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt @@ -5,9 +5,9 @@ import com.facebook.react.uimanager.UIManagerModule import com.facebook.react.uimanager.events.Event fun ReactContext.dispatchEvent(event: Event<*>) { - try { - this.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher.dispatchEvent(event) - } catch (e: NullPointerException) { - throw Exception("Couldn't get an instance of UIManagerModule. Gesture Handler is unable to send an event.", e) - } + try { + this.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher.dispatchEvent(event) + } catch (e: NullPointerException) { + throw Exception("Couldn't get an instance of UIManagerModule. Gesture Handler is unable to send an event.", e) + } } diff --git a/apps/bare-expo/ios/Podfile.lock b/apps/bare-expo/ios/Podfile.lock index f9f607bcb6858..c4ec33eea8f46 100644 --- a/apps/bare-expo/ios/Podfile.lock +++ b/apps/bare-expo/ios/Podfile.lock @@ -703,9 +703,9 @@ PODS: - React-Core - RNCPicker (2.4.6): - React-Core - - RNDateTimePicker (6.5.0): + - RNDateTimePicker (6.5.2): - React-Core - - RNGestureHandler (2.7.0): + - RNGestureHandler (2.8.0): - React-Core - RNReanimated (2.11.0): - DoubleConversion @@ -1358,9 +1358,9 @@ SPEC CHECKSUMS: RNCAsyncStorage: 466b9df1a14bccda91da86e0b7d9a345d78e1673 RNCMaskedView: c298b644a10c0c142055b3ae24d83879ecb13ccd RNCPicker: 2f71e09c52ab6327e2c393213368ea0e5bfbcb65 - RNDateTimePicker: 154f8246e9c32fd663995647a7f9f667a8c6b258 - RNGestureHandler: 7673697e7c0e9391adefae4faa087442bc04af33 - RNReanimated: 593c667bdcb9aa41d3701768aa5ab2e7d3828693 + RNDateTimePicker: 3f32aa2247836c12618d346113e5e82ea60ddd9c + RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3 + RNReanimated: 2e463924d627f7dc857eeecbfef25c4894978cd6 RNScreens: f3230dd008a7d0ce5c0a8bc78ff12cf2315bda24 RNSharedElement: eb7d506733952d58634f34c82ec17e82f557e377 RNSVG: 07dbd870b0dcdecc99b3a202fa37c8ca163caec2 diff --git a/apps/bare-expo/package.json b/apps/bare-expo/package.json index 9d598265970c3..fbef043ad66d2 100644 --- a/apps/bare-expo/package.json +++ b/apps/bare-expo/package.json @@ -112,7 +112,7 @@ "react": "18.1.0", "react-dom": "18.0.0", "react-native": "0.70.3", - "react-native-gesture-handler": "~2.7.0", + "react-native-gesture-handler": "~2.8.0", "react-native-reanimated": "~2.11.0", "react-native-safe-area-context": "4.4.1", "react-native-screens": "~3.18.0", diff --git a/apps/native-component-list/package.json b/apps/native-component-list/package.json index c58e657097088..e4961d5bc0614 100644 --- a/apps/native-component-list/package.json +++ b/apps/native-component-list/package.json @@ -145,7 +145,7 @@ "react": "18.1.0", "react-dom": "18.0.0", "react-native": "0.70.3", - "react-native-gesture-handler": "~2.7.0", + "react-native-gesture-handler": "~2.8.0", "react-native-iphone-x-helper": "^1.3.0", "react-native-maps": "1.3.2", "react-native-pager-view": "6.0.1", diff --git a/apps/test-suite/package.json b/apps/test-suite/package.json index e7e83e958ac6e..0eb83ec0a38f4 100644 --- a/apps/test-suite/package.json +++ b/apps/test-suite/package.json @@ -53,7 +53,7 @@ "lodash": "^4.17.19", "react": "18.1.0", "react-native": "0.70.3", - "react-native-gesture-handler": "~2.7.0", + "react-native-gesture-handler": "~2.8.0", "react-native-safe-area-view": "^0.14.8", "sinon": "^7.1.1" }, diff --git a/home/package.json b/home/package.json index bcdc6670c67a6..0f787841fa93a 100644 --- a/home/package.json +++ b/home/package.json @@ -56,7 +56,7 @@ "react": "18.1.0", "react-native": "0.70.3", "react-native-fade-in-image": "^1.6.1", - "react-native-gesture-handler": "~2.7.0", + "react-native-gesture-handler": "~2.8.0", "react-native-infinite-scroll-view": "^0.4.5", "react-native-keyboard-aware-scroll-view": "^0.9.5", "react-native-maps": "1.3.2", diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5172b5028e17b..f38ee78f3b275 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2019,7 +2019,7 @@ PODS: - React-perflogger (= 0.70.3) - RNFlashList (1.3.0): - React-Core - - RNGestureHandler (2.7.0): + - RNGestureHandler (2.8.0): - React-Core - RNReanimated (2.11.0): - DoubleConversion @@ -3523,7 +3523,7 @@ SPEC CHECKSUMS: React-runtimeexecutor: e9b1f9310158a1e265bcdfdfd8c62d6174b947a2 ReactCommon: 01064177e66d652192c661de899b1076da962fd9 RNFlashList: 5116f2de2f543f01bfc30b22d5942d5af84b43df - RNGestureHandler: 7673697e7c0e9391adefae4faa087442bc04af33 + RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3 RNReanimated: 590d19d77725fa713c2a0f7f656f6ac41b9ab3e8 RNScreens: f3230dd008a7d0ce5c0a8bc78ff12cf2315bda24 RNSVG: 07dbd870b0dcdecc99b3a202fa37c8ca163caec2 diff --git a/ios/vendored/unversioned/react-native-gesture-handler/RNGestureHandler.podspec.json b/ios/vendored/unversioned/react-native-gesture-handler/RNGestureHandler.podspec.json index 86e5b94d10d18..9988c695df0e4 100644 --- a/ios/vendored/unversioned/react-native-gesture-handler/RNGestureHandler.podspec.json +++ b/ios/vendored/unversioned/react-native-gesture-handler/RNGestureHandler.podspec.json @@ -1,6 +1,6 @@ { "name": "RNGestureHandler", - "version": "2.7.0", + "version": "2.8.0", "summary": "Experimental implementation of a new declarative API for gesture handling in react-native", "homepage": "https://github.com/software-mansion/react-native-gesture-handler", "license": "MIT", @@ -9,7 +9,7 @@ }, "source": { "git": "https://github.com/software-mansion/react-native-gesture-handler", - "tag": "2.7.0" + "tag": "2.8.0" }, "source_files": "ios/**/*.{h,m,mm}", "requires_arc": true, diff --git a/ios/vendored/unversioned/react-native-gesture-handler/ios/Handlers/RNManualHandler.m b/ios/vendored/unversioned/react-native-gesture-handler/ios/Handlers/RNManualHandler.m index eebe5d76c3865..f584efea15ca9 100644 --- a/ios/vendored/unversioned/react-native-gesture-handler/ios/Handlers/RNManualHandler.m +++ b/ios/vendored/unversioned/react-native-gesture-handler/ios/Handlers/RNManualHandler.m @@ -2,7 +2,7 @@ @interface RNManualRecognizer : UIGestureRecognizer -- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler; +- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler; @end @@ -24,7 +24,7 @@ - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesBegan:touches withEvent:event]; [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event]; - + if (_shouldSendBeginEvent) { [_gestureHandler handleGesture:self]; _shouldSendBeginEvent = NO; @@ -35,6 +35,14 @@ - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesMoved:touches withEvent:event]; [_gestureHandler.pointerTracker touchesMoved:touches withEvent:event]; + + if ([self shouldFail]) { + self.state = (self.state == UIGestureRecognizerStatePossible) + ? UIGestureRecognizerStateFailed + : UIGestureRecognizerStateCancelled; + + [self reset]; + } } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event @@ -53,21 +61,29 @@ - (void)reset { [_gestureHandler.pointerTracker reset]; [super reset]; - + _shouldSendBeginEvent = YES; } +- (BOOL)shouldFail +{ + if (_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView]) { + return YES; + } else { + return NO; + } +} + @end @implementation RNManualGestureHandler - (instancetype)initWithTag:(NSNumber *)tag { - if ((self = [super initWithTag:tag])) { - _recognizer = [[RNManualRecognizer alloc] initWithGestureHandler:self]; - - } - return self; + if ((self = [super initWithTag:tag])) { + _recognizer = [[RNManualRecognizer alloc] initWithGestureHandler:self]; + } + return self; } @end diff --git a/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerButtonComponentView.mm b/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerButtonComponentView.mm index 0688a780495db..27219e227a006 100644 --- a/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerButtonComponentView.mm +++ b/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerButtonComponentView.mm @@ -17,9 +17,8 @@ @interface RNGestureHandlerButtonComponentView () @end -@implementation RNGestureHandlerButtonComponentView -{ - RNGestureHandlerButton *_buttonView; +@implementation RNGestureHandlerButtonComponentView { + RNGestureHandlerButton *_buttonView; } - (instancetype)initWithFrame:(CGRect)frame @@ -28,7 +27,7 @@ - (instancetype)initWithFrame:(CGRect)frame static const auto defaultProps = std::make_shared(); _props = defaultProps; _buttonView = [[RNGestureHandlerButton alloc] initWithFrame:self.bounds]; - + self.contentView = _buttonView; } @@ -44,12 +43,12 @@ + (ComponentDescriptorProvider)componentDescriptorProvider - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps { - const auto &newProps = *std::static_pointer_cast(props); + const auto &newProps = *std::static_pointer_cast(props); - _buttonView.userEnabled = newProps.enabled; - _buttonView.exclusiveTouch = newProps.exclusive; + _buttonView.userEnabled = newProps.enabled; + _buttonView.exclusiveTouch = newProps.exclusive; - [super updateProps:props oldProps:oldProps]; + [super updateProps:props oldProps:oldProps]; } @end diff --git a/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerManager.mm b/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerManager.mm index 8b99316d79f1b..8c2d99da5a76b 100644 --- a/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerManager.mm +++ b/ios/vendored/unversioned/react-native-gesture-handler/ios/RNGestureHandlerManager.mm @@ -1,160 +1,158 @@ #import "RNGestureHandlerManager.h" -#import -#import #import -#import -#import #import +#import #import +#import +#import +#import -#import "RNGestureHandlerActionType.h" -#import "RNGestureHandlerState.h" #import "RNGestureHandler.h" +#import "RNGestureHandlerActionType.h" #import "RNGestureHandlerRegistry.h" +#import "RNGestureHandlerState.h" #import "RNRootViewGestureRecognizer.h" #ifdef RN_FABRIC_ENABLED -#import #import +#import #else #import #endif // RN_FABRIC_ENABLED -#import "Handlers/RNPanHandler.h" -#import "Handlers/RNTapHandler.h" #import "Handlers/RNFlingHandler.h" +#import "Handlers/RNForceTouchHandler.h" #import "Handlers/RNLongPressHandler.h" +#import "Handlers/RNManualHandler.h" #import "Handlers/RNNativeViewHandler.h" +#import "Handlers/RNPanHandler.h" #import "Handlers/RNPinchHandler.h" #import "Handlers/RNRotationHandler.h" -#import "Handlers/RNForceTouchHandler.h" -#import "Handlers/RNManualHandler.h" +#import "Handlers/RNTapHandler.h" // We use the method below instead of RCTLog because we log out messages after the bridge gets // turned down in some cases. Which normally with RCTLog would cause a crash in DEBUG mode -#define RCTLifecycleLog(...) RCTDefaultLogFunction(RCTLogLevelInfo, RCTLogSourceNative, @(__FILE__), @(__LINE__), [NSString stringWithFormat:__VA_ARGS__]) +#define RCTLifecycleLog(...) \ + RCTDefaultLogFunction( \ + RCTLogLevelInfo, RCTLogSourceNative, @(__FILE__), @(__LINE__), [NSString stringWithFormat:__VA_ARGS__]) @interface RNGestureHandlerManager () @end -@implementation RNGestureHandlerManager -{ - RNGestureHandlerRegistry *_registry; - RCTUIManager *_uiManager; - NSHashTable *_rootViewGestureRecognizers; - RCTEventDispatcher *_eventDispatcher; - id _reanimatedModule; +@implementation RNGestureHandlerManager { + RNGestureHandlerRegistry *_registry; + RCTUIManager *_uiManager; + NSHashTable *_rootViewGestureRecognizers; + RCTEventDispatcher *_eventDispatcher; + id _reanimatedModule; } -- (instancetype)initWithUIManager:(RCTUIManager *)uiManager - eventDispatcher:(RCTEventDispatcher *)eventDispatcher +- (instancetype)initWithUIManager:(RCTUIManager *)uiManager eventDispatcher:(RCTEventDispatcher *)eventDispatcher { - if ((self = [super init])) { - _uiManager = uiManager; - _eventDispatcher = eventDispatcher; - _registry = [RNGestureHandlerRegistry new]; - _rootViewGestureRecognizers = [NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory]; - _reanimatedModule = nil; - } - return self; + if ((self = [super init])) { + _uiManager = uiManager; + _eventDispatcher = eventDispatcher; + _registry = [RNGestureHandlerRegistry new]; + _rootViewGestureRecognizers = [NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory]; + _reanimatedModule = nil; + } + return self; } -- (void)createGestureHandler:(NSString *)handlerName - tag:(NSNumber *)handlerTag - config:(NSDictionary *)config +- (void)createGestureHandler:(NSString *)handlerName tag:(NSNumber *)handlerTag config:(NSDictionary *)config { - static NSDictionary *map; - static dispatch_once_t mapToken; - dispatch_once(&mapToken, ^{ - map = @{ - @"PanGestureHandler" : [RNPanGestureHandler class], - @"TapGestureHandler" : [RNTapGestureHandler class], - @"FlingGestureHandler" : [RNFlingGestureHandler class], - @"LongPressGestureHandler": [RNLongPressGestureHandler class], - @"NativeViewGestureHandler": [RNNativeViewGestureHandler class], - @"PinchGestureHandler": [RNPinchGestureHandler class], - @"RotationGestureHandler": [RNRotationGestureHandler class], - @"ForceTouchGestureHandler": [RNForceTouchHandler class], - @"ManualGestureHandler": [RNManualGestureHandler class], - }; - }); - - Class nodeClass = map[handlerName]; - if (!nodeClass) { - RCTLogError(@"Gesture handler type %@ is not supported", handlerName); - return; - } - - RNGestureHandler *gestureHandler = [[nodeClass alloc] initWithTag:handlerTag]; - [gestureHandler configure:config]; - [_registry registerGestureHandler:gestureHandler]; - - __weak id emitter = self; - gestureHandler.emitter = emitter; + static NSDictionary *map; + static dispatch_once_t mapToken; + dispatch_once(&mapToken, ^{ + map = @{ + @"PanGestureHandler" : [RNPanGestureHandler class], + @"TapGestureHandler" : [RNTapGestureHandler class], + @"FlingGestureHandler" : [RNFlingGestureHandler class], + @"LongPressGestureHandler" : [RNLongPressGestureHandler class], + @"NativeViewGestureHandler" : [RNNativeViewGestureHandler class], + @"PinchGestureHandler" : [RNPinchGestureHandler class], + @"RotationGestureHandler" : [RNRotationGestureHandler class], + @"ForceTouchGestureHandler" : [RNForceTouchHandler class], + @"ManualGestureHandler" : [RNManualGestureHandler class], + }; + }); + + Class nodeClass = map[handlerName]; + if (!nodeClass) { + RCTLogError(@"Gesture handler type %@ is not supported", handlerName); + return; + } + + RNGestureHandler *gestureHandler = [[nodeClass alloc] initWithTag:handlerTag]; + [gestureHandler configure:config]; + [_registry registerGestureHandler:gestureHandler]; + + __weak id emitter = self; + gestureHandler.emitter = emitter; } - - (void)attachGestureHandler:(nonnull NSNumber *)handlerTag toViewWithTag:(nonnull NSNumber *)viewTag withActionType:(RNGestureHandlerActionType)actionType { - UIView *view = [_uiManager viewForReactTag:viewTag]; - + UIView *view = [_uiManager viewForReactTag:viewTag]; + #ifdef RN_FABRIC_ENABLED - if (view == nil) { - // Happens when the view with given tag has been flattened. - // We cannot attach gesture handler to a non-existent view. - return; + if (view == nil) { + // Happens when the view with given tag has been flattened. + // We cannot attach gesture handler to a non-existent view. + return; + } + + // I think it should be moved to RNNativeViewHandler, but that would require + // additional logic for setting contentView.reactTag, this works for now + if ([view isKindOfClass:[RCTViewComponentView class]]) { + RCTViewComponentView *componentView = (RCTViewComponentView *)view; + if (componentView.contentView != nil) { + view = componentView.contentView; } - - // I think it should be moved to RNNativeViewHandler, but that would require - // additional logic for setting contentView.reactTag, this works for now - if ([view isKindOfClass:[RCTViewComponentView class]]) { - RCTViewComponentView *componentView = (RCTViewComponentView *)view; - if (componentView.contentView != nil) { - view = componentView.contentView; - } - } - - view.reactTag = viewTag; // necessary for RNReanimated eventHash (e.g. "42onGestureHandlerEvent"), also will be returned as event.target + } + + view.reactTag = viewTag; // necessary for RNReanimated eventHash (e.g. "42onGestureHandlerEvent"), also will be + // returned as event.target #endif // RN_FABRIC_ENABLED - [_registry attachHandlerWithTag:handlerTag toView:view withActionType:actionType]; + [_registry attachHandlerWithTag:handlerTag toView:view withActionType:actionType]; - // register view if not already there - [self registerViewWithGestureRecognizerAttachedIfNeeded:view]; + // register view if not already there + [self registerViewWithGestureRecognizerAttachedIfNeeded:view]; } - (void)updateGestureHandler:(NSNumber *)handlerTag config:(NSDictionary *)config { - RNGestureHandler *handler = [_registry handlerWithTag:handlerTag]; - [handler configure:config]; + RNGestureHandler *handler = [_registry handlerWithTag:handlerTag]; + [handler configure:config]; } - (void)dropGestureHandler:(NSNumber *)handlerTag { - [_registry dropHandlerWithTag:handlerTag]; + [_registry dropHandlerWithTag:handlerTag]; } - (void)dropAllGestureHandlers { - [_registry dropAllHandlers]; + [_registry dropAllHandlers]; } - (void)handleSetJSResponder:(NSNumber *)viewTag blockNativeResponder:(NSNumber *)blockNativeResponder { - if ([blockNativeResponder boolValue]) { - for (RNRootViewGestureRecognizer *recognizer in _rootViewGestureRecognizers) { - [recognizer blockOtherRecognizers]; - } + if ([blockNativeResponder boolValue]) { + for (RNRootViewGestureRecognizer *recognizer in _rootViewGestureRecognizers) { + [recognizer blockOtherRecognizers]; } + } } - (void)handleClearJSResponder { - // ignore... + // ignore... } - (id)handlerWithTag:(NSNumber *)handlerTag @@ -162,145 +160,145 @@ - (id)handlerWithTag:(NSNumber *)handlerTag return [_registry handlerWithTag:handlerTag]; } - #pragma mark Root Views Management - (void)registerViewWithGestureRecognizerAttachedIfNeeded:(UIView *)childView { - UIView *parent = childView; - while (parent != nil && ![parent respondsToSelector:@selector(touchHandler)]) parent = parent.superview; - - // Many views can return the same touchHandler so we check if the one we want to register - // is not already present in the set. - UIView *touchHandlerView = [[parent performSelector:@selector(touchHandler)] view]; - - if (touchHandlerView == nil) { + UIView *parent = childView; + while (parent != nil && ![parent respondsToSelector:@selector(touchHandler)]) + parent = parent.superview; + + // Many views can return the same touchHandler so we check if the one we want to register + // is not already present in the set. + UIView *touchHandlerView = [[parent performSelector:@selector(touchHandler)] view]; + + if (touchHandlerView == nil) { + return; + } + + for (UIGestureRecognizer *recognizer in touchHandlerView.gestureRecognizers) { + if ([recognizer isKindOfClass:[RNRootViewGestureRecognizer class]]) { return; } - - for (UIGestureRecognizer *recognizer in touchHandlerView.gestureRecognizers) { - if ([recognizer isKindOfClass:[RNRootViewGestureRecognizer class]]) { - return; - } - } - - RCTLifecycleLog(@"[GESTURE HANDLER] Initialize gesture handler for view %@", touchHandlerView); - RNRootViewGestureRecognizer *recognizer = [RNRootViewGestureRecognizer new]; - recognizer.delegate = self; - touchHandlerView.userInteractionEnabled = YES; - [touchHandlerView addGestureRecognizer:recognizer]; - [_rootViewGestureRecognizers addObject:recognizer]; + } + + RCTLifecycleLog(@"[GESTURE HANDLER] Initialize gesture handler for view %@", touchHandlerView); + RNRootViewGestureRecognizer *recognizer = [RNRootViewGestureRecognizer new]; + recognizer.delegate = self; + touchHandlerView.userInteractionEnabled = YES; + [touchHandlerView addGestureRecognizer:recognizer]; + [_rootViewGestureRecognizers addObject:recognizer]; } - (void)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer didActivateInViewWithTouchHandler:(UIView *)viewWithTouchHandler { - // Cancel touches in RN's root view in order to cancel all in-js recognizers - - // As scroll events are special-cased in RN responder implementation and sending them would - // trigger JS responder change, we don't cancel touches if the handler that got activated is - // a scroll recognizer. This way root view will keep sending touchMove and touchEnd events - // and therefore allow JS responder to properly release the responder at the end of the touch - // stream. - // NOTE: this is not a proper fix and solving this problem requires upstream fixes to RN. In - // particular if we have one PanHandler and ScrollView that can work simultaniously then when - // the Pan handler activates it would still tigger cancel events. - // Once the upstream fix lands the line below along with this comment can be removed - if ([gestureRecognizer.view isKindOfClass:[UIScrollView class]]) return; + // Cancel touches in RN's root view in order to cancel all in-js recognizers + + // As scroll events are special-cased in RN responder implementation and sending them would + // trigger JS responder change, we don't cancel touches if the handler that got activated is + // a scroll recognizer. This way root view will keep sending touchMove and touchEnd events + // and therefore allow JS responder to properly release the responder at the end of the touch + // stream. + // NOTE: this is not a proper fix and solving this problem requires upstream fixes to RN. In + // particular if we have one PanHandler and ScrollView that can work simultaniously then when + // the Pan handler activates it would still tigger cancel events. + // Once the upstream fix lands the line below along with this comment can be removed + if ([gestureRecognizer.view isKindOfClass:[UIScrollView class]]) + return; #ifdef RN_FABRIC_ENABLED - RCTSurfaceTouchHandler *touchHandler = [viewWithTouchHandler performSelector:@selector(touchHandler)]; + RCTSurfaceTouchHandler *touchHandler = [viewWithTouchHandler performSelector:@selector(touchHandler)]; #else - RCTTouchHandler *touchHandler = [viewWithTouchHandler performSelector:@selector(touchHandler)]; + RCTTouchHandler *touchHandler = [viewWithTouchHandler performSelector:@selector(touchHandler)]; #endif - [touchHandler setEnabled:NO]; - [touchHandler setEnabled:YES]; - + [touchHandler setEnabled:NO]; + [touchHandler setEnabled:YES]; } #pragma mark Events - (void)sendEvent:(RNGestureHandlerStateChange *)event withActionType:(RNGestureHandlerActionType)actionType { - switch (actionType) { - case RNGestureHandlerActionTypeReanimatedWorklet: - [self sendEventForReanimated:event]; - break; - - case RNGestureHandlerActionTypeNativeAnimatedEvent: - if ([event.eventName isEqualToString:@"onGestureHandlerEvent"]) { - [self sendEventForNativeAnimatedEvent:event]; - } else { - // Although onGestureEvent prop is an Animated.event with useNativeDriver: true, - // onHandlerStateChange prop is still a regular JS function. - // Also, Animated.event is only supported with old API. - [self sendEventForJSFunctionOldAPI:event]; - } - break; - - case RNGestureHandlerActionTypeJSFunctionOldAPI: - [self sendEventForJSFunctionOldAPI:event]; - break; - - case RNGestureHandlerActionTypeJSFunctionNewAPI: - [self sendEventForJSFunctionNewAPI:event]; - break; - } + switch (actionType) { + case RNGestureHandlerActionTypeReanimatedWorklet: + [self sendEventForReanimated:event]; + break; + + case RNGestureHandlerActionTypeNativeAnimatedEvent: + if ([event.eventName isEqualToString:@"onGestureHandlerEvent"]) { + [self sendEventForNativeAnimatedEvent:event]; + } else { + // Although onGestureEvent prop is an Animated.event with useNativeDriver: true, + // onHandlerStateChange prop is still a regular JS function. + // Also, Animated.event is only supported with old API. + [self sendEventForJSFunctionOldAPI:event]; + } + break; + + case RNGestureHandlerActionTypeJSFunctionOldAPI: + [self sendEventForJSFunctionOldAPI:event]; + break; + + case RNGestureHandlerActionTypeJSFunctionNewAPI: + [self sendEventForJSFunctionNewAPI:event]; + break; + } } - (void)sendEventForReanimated:(RNGestureHandlerStateChange *)event { - // Delivers the event to Reanimated. + // Delivers the event to Reanimated. #ifdef RN_FABRIC_ENABLED - // Send event directly to Reanimated - if (_reanimatedModule == nil) { - _reanimatedModule = [_uiManager.bridge moduleForName:@"ReanimatedModule"]; - } - - [_reanimatedModule eventDispatcherWillDispatchEvent:event]; + // Send event directly to Reanimated + if (_reanimatedModule == nil) { + _reanimatedModule = [_uiManager.bridge moduleForName:@"ReanimatedModule"]; + } + + [_reanimatedModule eventDispatcherWillDispatchEvent:event]; #else - // In the old architecture, Reanimated overwrites RCTEventDispatcher - // with REAEventDispatcher and intercepts all direct events. - [self sendEventForDirectEvent:event]; + // In the old architecture, Reanimated overwrites RCTEventDispatcher + // with REAEventDispatcher and intercepts all direct events. + [self sendEventForDirectEvent:event]; #endif // RN_FABRIC_ENABLED } - (void)sendEventForNativeAnimatedEvent:(RNGestureHandlerStateChange *)event { - // Delivers the event to NativeAnimatedModule. - // Currently, NativeAnimated[Turbo]Module is RCTEventDispatcherObserver so we can - // simply send a direct event which is handled by the observer but ignored on JS side. - // TODO: send event directly to NativeAnimated[Turbo]Module - [self sendEventForDirectEvent:event]; + // Delivers the event to NativeAnimatedModule. + // Currently, NativeAnimated[Turbo]Module is RCTEventDispatcherObserver so we can + // simply send a direct event which is handled by the observer but ignored on JS side. + // TODO: send event directly to NativeAnimated[Turbo]Module + [self sendEventForDirectEvent:event]; } - (void)sendEventForJSFunctionOldAPI:(RNGestureHandlerStateChange *)event { - // Delivers the event to JS (old RNGH API). + // Delivers the event to JS (old RNGH API). #ifdef RN_FABRIC_ENABLED - [self sendEventForDeviceEvent:event]; + [self sendEventForDeviceEvent:event]; #else - [self sendEventForDirectEvent:event]; + [self sendEventForDirectEvent:event]; #endif // RN_FABRIC_ENABLED } - (void)sendEventForJSFunctionNewAPI:(RNGestureHandlerStateChange *)event { - // Delivers the event to JS (new RNGH API). - [self sendEventForDeviceEvent:event]; + // Delivers the event to JS (new RNGH API). + [self sendEventForDeviceEvent:event]; } - (void)sendEventForDirectEvent:(RNGestureHandlerStateChange *)event { - // Delivers the event to JS as a direct event. - [_eventDispatcher sendEvent:event]; + // Delivers the event to JS as a direct event. + [_eventDispatcher sendEvent:event]; } - (void)sendEventForDeviceEvent:(RNGestureHandlerStateChange *)event { - // Delivers the event to JS as a device event. - NSMutableDictionary *body = [[event arguments] objectAtIndex:2]; - [_eventDispatcher sendDeviceEventWithName:@"onGestureHandlerStateChange" body:body]; + // Delivers the event to JS as a device event. + NSMutableDictionary *body = [[event arguments] objectAtIndex:2]; + [_eventDispatcher sendDeviceEventWithName:@"onGestureHandlerStateChange" body:body]; } @end diff --git a/packages/expo-stories/package.json b/packages/expo-stories/package.json index 8292a2e19caa5..f1995431bead6 100644 --- a/packages/expo-stories/package.json +++ b/packages/expo-stories/package.json @@ -30,7 +30,7 @@ "esbuild": "^0.12.15", "fs-extra": "^9.1.0", "glob": "^7.1.7", - "react-native-gesture-handler": "~2.7.0", + "react-native-gesture-handler": "~2.8.0", "react-native-safe-area-context": "4.4.1", "react-native-screens": "~3.18.0", "react-native-svg": "13.4.0", diff --git a/packages/expo/bundledNativeModules.json b/packages/expo/bundledNativeModules.json index 3ea7bb2a2451c..1490800c39dc4 100644 --- a/packages/expo/bundledNativeModules.json +++ b/packages/expo/bundledNativeModules.json @@ -90,7 +90,7 @@ "react-native": "0.70.3", "react-native-web": "~0.18.9", "react-native-branch": "^5.4.0", - "react-native-gesture-handler": "~2.7.0", + "react-native-gesture-handler": "~2.8.0", "react-native-get-random-values": "~1.8.0", "react-native-maps": "1.3.2", "react-native-pager-view": "6.0.1", diff --git a/tools/src/vendoring/config/expoGoConfig.ts b/tools/src/vendoring/config/expoGoConfig.ts index cc70aa56cce1d..fca493a00a3e0 100644 --- a/tools/src/vendoring/config/expoGoConfig.ts +++ b/tools/src/vendoring/config/expoGoConfig.ts @@ -67,11 +67,16 @@ const config: VendoringTargetConfig = { 'def shouldUseCommonInterfaceFromReanimated() {\n return true\n' ); buildGradle = buildGradle.replace( - 'react-native-reanimated', + /react-native-reanimated/g, 'vendored_unversioned_react-native-reanimated' ); await fs.writeFile(buildGradlePath, buildGradle); }, + excludeFiles: [ + 'android/gradle{/**,**}', + 'android/settings.gradle', + 'android/spotless.gradle', + ], }, }, 'react-native-reanimated': { diff --git a/yarn.lock b/yarn.lock index 353c6a46b5d1a..ed226952ccb8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3302,10 +3302,10 @@ prompts "^2.4.0" semver "^6.3.0" -"@react-native-community/datetimepicker@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-6.5.0.tgz#ecbcb0f995f57570ae5fa11ed66d23fcc67c2a3c" - integrity sha512-s0gxsz/l3Ln2+dZV+4RZI94+A+JO8ywrjC17cGK8ozM+VLXHAUARgGLGc+vqNJkxzZzGUqnkO6/kypQGoK7t/A== +"@react-native-community/datetimepicker@6.5.2": + version "6.5.2" + resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-6.5.2.tgz#d2c0df9f2c6acce39f7e957743dd811547656098" + integrity sha512-9K3zhIH1zmpIGSG3GJTWLIoAx+sR4kJ1wqpGKMwWJ5IYXBsFxMdvGw023t0pz2CQStlnNbbNhnZY/HMYFBCsCg== dependencies: invariant "^2.2.4" @@ -17185,10 +17185,10 @@ react-native-fade-in-image@^1.6.1: react-mixin "^3.0.5" react-timer-mixin "^0.13.3" -react-native-gesture-handler@~2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.7.0.tgz#53ad828add926c8e025f68ea581758c0f8893054" - integrity sha512-0jr3FNm2R3gv/v6XTtENgjv0fewD6LEct8EWmXw/oHw36M3YiIIpxnW57thL+0YiKwyLBXN0QHL4JZbs/heW2Q== +react-native-gesture-handler@~2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.8.0.tgz#ef9857871c10663c95a51546225b6e00cd4740cf" + integrity sha512-poOSfz/w0IyD6Qwq7aaIRRfEaVTl1ecQFoyiIbpOpfNTjm2B1niY2FLrdVQIOtIOe+K9nH55Qal04nr4jGkHdQ== dependencies: "@egjs/hammerjs" "^2.0.17" hoist-non-react-statics "^3.3.0"