diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 1ac72cc86ee0..7519e7d58989 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -993,7 +993,7 @@ const definitions: FeatureFlagDefinitions = { ossReleaseStage: 'none', }, animatedShouldUseSingleOp: { - defaultValue: false, + defaultValue: true, metadata: { dateAdded: '2024-02-05', description: diff --git a/packages/react-native/src/private/animated/NativeAnimatedHelper.js b/packages/react-native/src/private/animated/NativeAnimatedHelper.js index 74a76280692a..eaaefb5b9a0b 100644 --- a/packages/react-native/src/private/animated/NativeAnimatedHelper.js +++ b/packages/react-native/src/private/animated/NativeAnimatedHelper.js @@ -56,7 +56,8 @@ const singleOpQueue: Array = []; const isSingleOpBatching = Platform.OS === 'android' && NativeAnimatedModule?.queueAndExecuteBatchedOperations != null && - ReactNativeFeatureFlags.animatedShouldUseSingleOp(); + ReactNativeFeatureFlags.animatedShouldUseSingleOp() && + !ReactNativeFeatureFlags.cxxNativeAnimatedEnabled(); let flushQueueImmediate = null; const eventListenerGetValueCallbacks: { diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index ce445d0dc309..918b6b821aa1 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> * @flow strict * @noformat */ @@ -164,7 +164,7 @@ export const animatedShouldSyncValueBeforeStartCallback: Getter = creat /** * Enables an experimental mega-operation for Animated.js that replaces many calls to native with a single call into native, to reduce JSI/JNI traffic. */ -export const animatedShouldUseSingleOp: Getter = createJavaScriptFlagGetter('animatedShouldUseSingleOp', false); +export const animatedShouldUseSingleOp: Getter = createJavaScriptFlagGetter('animatedShouldUseSingleOp', true); /** * Use the deferred cell render update mechanism for focus change in FlatList.