diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 67f73536f27226..809e00fc5956de 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -1890,12 +1890,10 @@ public class com/facebook/react/common/network/OkHttpCallUtil { public class com/facebook/react/config/ReactFeatureFlags { public static field calculateTransformedFramesEnabled Z public static field dispatchPointerEvents Z - public static field doNotSwapLeftAndRightOnAndroidInLTR Z public static field enableBackgroundExecutor Z public static field enableBridgelessArchitecture Z public static field enableBridgelessArchitectureNewCreateReloadDestroy Z public static field enableBridgelessArchitectureSoftExceptions Z - public static field enableCleanParagraphYogaNode Z public static field enableClonelessStateProgression Z public static field enableCppPropsIteratorSetter Z public static field enableDefaultAsyncBatchedPriority Z diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java index 3349b35d1246f5..250772c9015e91 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java @@ -130,12 +130,6 @@ public class ReactFeatureFlags { /** Use native view configs in bridgeless mode. */ public static boolean useNativeViewConfigsInBridgelessMode = false; - /** Only swap left and right on Android in RTL scripts. */ - public static boolean doNotSwapLeftAndRightOnAndroidInLTR = false; - - /** Clean yoga node when does not change. */ - public static boolean enableCleanParagraphYogaNode = false; - /** Default state updates and events to async batched priority. */ public static boolean enableDefaultAsyncBatchedPriority = false; diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp index 0f89b1ee8fe29b..3331911f0f17ec 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp @@ -414,10 +414,6 @@ void Binding::installFabricUIManager( CoreFeatures::enablePropIteratorSetter = getFeatureFlagValue("enableCppPropsIteratorSetter"); - CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR = - getFeatureFlagValue("doNotSwapLeftAndRightOnAndroidInLTR"); - CoreFeatures::enableCleanParagraphYogaNode = - getFeatureFlagValue("enableCleanParagraphYogaNode"); CoreFeatures::enableDefaultAsyncBatchedPriority = getFeatureFlagValue("enableDefaultAsyncBatchedPriority"); CoreFeatures::enableClonelessStateProgression = diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp index ca5761652b6171..fa48189076ebfe 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp @@ -17,7 +17,6 @@ #include #include #include -#include #include "ParagraphState.h" @@ -31,13 +30,11 @@ ParagraphShadowNode::ParagraphShadowNode( const ShadowNode& sourceShadowNode, const ShadowNodeFragment& fragment) : ConcreteViewShadowNode(sourceShadowNode, fragment) { - if (CoreFeatures::enableCleanParagraphYogaNode) { - if (!fragment.children && !fragment.props) { - // This ParagraphShadowNode was cloned but did not change - // in a way that affects its layout. Let's mark it clean - // to stop Yoga from traversing it. - cleanLayout(); - } + if (!fragment.children && !fragment.props) { + // This ParagraphShadowNode was cloned but did not change + // in a way that affects its layout. Let's mark it clean + // to stop Yoga from traversing it. + cleanLayout(); } } diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp index 08a3220e56396d..accb37664809a9 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp @@ -580,8 +580,7 @@ void YogaLayoutableShadowNode::layoutTree( SystraceSection s1("YogaLayoutableShadowNode::layoutTree"); bool swapLeftAndRight = layoutContext.swapLeftAndRightInRTL && - (layoutConstraints.layoutDirection == LayoutDirection::RightToLeft || - !CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR); + layoutConstraints.layoutDirection == LayoutDirection::RightToLeft; { SystraceSection s2("YogaLayoutableShadowNode::configureYogaTree"); @@ -699,8 +698,7 @@ void YogaLayoutableShadowNode::layout(LayoutContext layoutContext) { newLayoutMetrics.pointScaleFactor = layoutContext.pointScaleFactor; newLayoutMetrics.wasLeftAndRightSwapped = layoutContext.swapLeftAndRightInRTL && - (newLayoutMetrics.layoutDirection == LayoutDirection::RightToLeft || - !CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR); + newLayoutMetrics.layoutDirection == LayoutDirection::RightToLeft; // Child node's layout has changed. When a node is added to // `affectedNodes`, onLayout event is called on the component. Comparing diff --git a/packages/react-native/ReactCommon/react/utils/CoreFeatures.cpp b/packages/react-native/ReactCommon/react/utils/CoreFeatures.cpp index c967febaac7a21..fcdc92e97f9941 100644 --- a/packages/react-native/ReactCommon/react/utils/CoreFeatures.cpp +++ b/packages/react-native/ReactCommon/react/utils/CoreFeatures.cpp @@ -15,8 +15,6 @@ bool CoreFeatures::cacheLastTextMeasurement = false; bool CoreFeatures::cancelImageDownloadsOnRecycle = false; bool CoreFeatures::enableGranularScrollViewStateUpdatesIOS = false; bool CoreFeatures::enableMountHooks = false; -bool CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR = false; -bool CoreFeatures::enableCleanParagraphYogaNode = false; bool CoreFeatures::enableGranularShadowTreeStateReconciliation = false; bool CoreFeatures::enableDefaultAsyncBatchedPriority = false; bool CoreFeatures::enableClonelessStateProgression = false; diff --git a/packages/react-native/ReactCommon/react/utils/CoreFeatures.h b/packages/react-native/ReactCommon/react/utils/CoreFeatures.h index 3ad24c5e02e4d8..2af28d74a10b9e 100644 --- a/packages/react-native/ReactCommon/react/utils/CoreFeatures.h +++ b/packages/react-native/ReactCommon/react/utils/CoreFeatures.h @@ -41,12 +41,6 @@ class CoreFeatures { // Report mount operations from the host platform to notify mount hooks. static bool enableMountHooks; - // Only swap left and right on Android in RTL scripts. - static bool doNotSwapLeftAndRightOnAndroidInLTR; - - // Clean yoga node when does not change. - static bool enableCleanParagraphYogaNode; - // When enabled, the renderer would only fail commits when they propagate // state and the last commit that updated state changed before committing. static bool enableGranularShadowTreeStateReconciliation;