From 056f1fd2cd77996e22418c6325b9e1d83fa193dc Mon Sep 17 00:00:00 2001 From: David Vacca Date: Wed, 3 Mar 2021 14:12:00 -0800 Subject: [PATCH] Integrate ComponentNameResolver into ReactInstanceManager Summary: This diff integrates the ComponentNameResolver class into ReactInstanceManager changelog: [internal] internal Reviewed By: JoshuaGross Differential Revision: D26716900 fbshipit-source-id: e3a5f44485f659a32bf6094eee7985daf634f50f --- .../com/facebook/react/ReactInstanceManager.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index cca71a2dccf..1cf66fb0098 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -83,6 +83,8 @@ import com.facebook.react.devsupport.RedBoxHandler; import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener; import com.facebook.react.devsupport.interfaces.DevSupportManager; import com.facebook.react.devsupport.interfaces.PackagerStatusCallback; +import com.facebook.react.fabric.ComponentNameResolver; +import com.facebook.react.fabric.ComponentNameResolverManager; import com.facebook.react.modules.appearance.AppearanceModule; import com.facebook.react.modules.appregistry.AppRegistry; import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; @@ -159,6 +161,7 @@ public class ReactInstanceManager { private final List mPackages; private final DevSupportManager mDevSupportManager; private final boolean mUseDeveloperSupport; + private @Nullable ComponentNameResolverManager mComponentNameResolverManager; private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener; private final Object mReactContextLock = new Object(); private @Nullable volatile ReactContext mCurrentReactContext; @@ -715,6 +718,7 @@ public class ReactInstanceManager { synchronized (mPackages) { mViewManagerNames = null; } + mComponentNameResolverManager = null; FLog.d(ReactConstants.TAG, "ReactInstanceManager has been destroyed"); } @@ -1331,6 +1335,15 @@ public class ReactInstanceManager { catalystInstance.setGlobalVariable("__RCTProfileIsProfiling", "true"); } if (ReactFeatureFlags.enableExperimentalStaticViewConfigs) { + mComponentNameResolverManager = + new ComponentNameResolverManager( + catalystInstance.getRuntimeExecutor(), + new ComponentNameResolver() { + @Override + public String[] getComponentNames() { + return getViewManagerNames().toArray(new String[0]); + } + }); catalystInstance.setGlobalVariable("__fbStaticViewConfig", "true"); } ReactMarker.logMarker(ReactMarkerConstants.PRE_RUN_JS_BUNDLE_START);