Ship large text measure cache in Fabric Android

Summary:
Ship large text measure cache in Fabric Android

changelog: [internal] internal

Reviewed By: sammy-SC

Differential Revision: D34602873

fbshipit-source-id: bd0a77b8b2f85301a78d528e7810938b78c7f7b8
This commit is contained in:
David Vacca
2022-03-03 09:41:23 -08:00
committed by Facebook GitHub Bot
parent 8669277b3b
commit 97f3eb2d3b
2 changed files with 15 additions and 3 deletions
@@ -100,4 +100,10 @@ public class ReactFeatureFlags {
public static boolean insertZReorderBarriersOnViewGroupChildren = true;
public static boolean enableDelayedViewStateDeletion = false;
/**
* Feature Flag to control the size of the cache used by TextLayoutManager in Fabric. Used from
* JNI.
*/
public static boolean enableLargeTextMeasureCache = true;
}
@@ -76,6 +76,14 @@ Binding::getInspectorDataForInstance(
return ReadableNativeMap::newObjectCxxArgs(result);
}
bool isLargeTextMeasureCacheEnabled() {
static const auto reactFeatureFlagsJavaDescriptor =
jni::findClassStatic(Binding::ReactFeatureFlagsJavaDescriptor);
const auto field = reactFeatureFlagsJavaDescriptor->getStaticField<jboolean>(
"enableLargeTextMeasureCache");
return reactFeatureFlagsJavaDescriptor->getStaticFieldValue(field);
}
bool isMapBufferSerializationEnabled() {
static const auto reactFeatureFlagsJavaDescriptor =
jni::findClassStatic(Binding::ReactFeatureFlagsJavaDescriptor);
@@ -437,9 +445,7 @@ void Binding::installFabricUIManager(
"react_native_new_architecture:dispatch_preallocation_in_bg");
contextContainer->insert(
"EnableLargeTextMeasureCache",
reactNativeConfig_->getBool(
"react_fabric:enable_large_text_measure_cache_android"));
"EnableLargeTextMeasureCache", isLargeTextMeasureCacheEnabled());
auto toolbox = SchedulerToolbox{};
toolbox.contextContainer = contextContainer;