diff --git a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java index e680d10d2c3..5fe45e4a88d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +++ b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java @@ -77,9 +77,6 @@ public class ReactFeatureFlags { /** Use experimental SetState retry mechanism in view? */ public static boolean enableExperimentalStateUpdateRetry = false; - /** Enable caching of Spannable objects using equality of ReadableNativeMaps */ - public static boolean enableSpannableCacheByReadableNativeMapEquality = true; - /** Use lock-free data structures for Fabric MountItems. */ public static boolean enableLockFreeMountInstructions = false; diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java index a322eaa7ad4..c2f428075f4 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java @@ -29,7 +29,6 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableNativeMap; import com.facebook.react.bridge.WritableArray; import com.facebook.react.common.build.ReactBuildConfig; -import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.uimanager.PixelUtil; import com.facebook.react.uimanager.ReactAccessibilityDelegate; import com.facebook.react.uimanager.ReactStylesDiffMap; @@ -64,9 +63,7 @@ public class TextLayoutManager { private static final String INCLUDE_FONT_PADDING_KEY = "includeFontPadding"; private static final String TEXT_BREAK_STRATEGY_KEY = "textBreakStrategy"; private static final String MAXIMUM_NUMBER_OF_LINES_KEY = "maximumNumberOfLines"; - private static final LruCache sSpannableCache = - new LruCache<>(spannableCacheSize); - private static final LruCache sSpannableCacheV2 = + private static final LruCache sSpannableCache = new LruCache<>(spannableCacheSize); private static final ConcurrentHashMap sTagToSpannableCache = new ConcurrentHashMap<>(); @@ -195,25 +192,11 @@ public class TextLayoutManager { @Nullable ReactTextViewManagerCallback reactTextViewManagerCallback) { Spannable preparedSpannableText; - String attributedStringPayload = ""; - boolean cacheByReadableNativeMap = - ReactFeatureFlags.enableSpannableCacheByReadableNativeMapEquality; - // TODO: T74600554 Cleanup this experiment once positive impact is confirmed in production - if (cacheByReadableNativeMap) { - synchronized (sSpannableCacheLock) { - preparedSpannableText = sSpannableCacheV2.get((ReadableNativeMap) attributedString); - if (preparedSpannableText != null) { - return preparedSpannableText; - } - } - } else { - attributedStringPayload = attributedString.toString(); - synchronized (sSpannableCacheLock) { - preparedSpannableText = sSpannableCache.get(attributedStringPayload); - if (preparedSpannableText != null) { - return preparedSpannableText; - } + synchronized (sSpannableCacheLock) { + preparedSpannableText = sSpannableCache.get((ReadableNativeMap) attributedString); + if (preparedSpannableText != null) { + return preparedSpannableText; } } @@ -221,15 +204,10 @@ public class TextLayoutManager { createSpannableFromAttributedString( context, attributedString, reactTextViewManagerCallback); - if (cacheByReadableNativeMap) { - synchronized (sSpannableCacheLock) { - sSpannableCacheV2.put((ReadableNativeMap) attributedString, preparedSpannableText); - } - } else { - synchronized (sSpannableCacheLock) { - sSpannableCache.put(attributedStringPayload, preparedSpannableText); - } + synchronized (sSpannableCacheLock) { + sSpannableCache.put((ReadableNativeMap) attributedString, preparedSpannableText); } + return preparedSpannableText; }