From 494c5f0eca1335175f972a32b81e25a5773b202a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Mon, 26 Oct 2026 11:50:01 +0100 Subject: [PATCH] [Android] Keep the press alive while a Pressable waits for another gesture --- .../src/v3/components/StatefulPressable.tsx | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/packages/react-native-gesture-handler/src/v3/components/StatefulPressable.tsx b/packages/react-native-gesture-handler/src/v3/components/StatefulPressable.tsx index e34332e5ae..170ed38526 100644 --- a/packages/react-native-gesture-handler/src/v3/components/StatefulPressable.tsx +++ b/packages/react-native-gesture-handler/src/v3/components/StatefulPressable.tsx @@ -311,13 +311,6 @@ const StatefulPressable = (props: PressableProps) => { pressableEvent ); }, - onTouchesUp: () => { - if (Platform.OS === 'android' && !isScreenReaderEnabled) { - // Prevents potential soft-locks - stateMachine.reset(); - handleFinalize(); - } - }, onTouchesCancel: (event) => { const pressableEvent = gestureTouchToPressableEvent(event); stateMachine.reset(); @@ -402,13 +395,9 @@ const StatefulPressable = (props: PressableProps) => { event.canceled ? StateMachineEvent.CANCEL : StateMachineEvent.FINALIZE ); - // On iOS the button's cancel can land before the long press's touch - // cancel, or without one, so deliver the press-out here - if ( - Platform.OS === 'ios' && - event.canceled && - isCurrentlyPressed.current - ) { + // The button's cancel can land before the long press's touch cancel, + // or without one, so deliver the press-out here + if (event.canceled && isCurrentlyPressed.current) { handlePressOut( pressInEventRef.current ?? viewCenterToPressableEvent(dimensions.current),