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
This commit is contained in:
David Vacca 2021-03-03 14:12:00 -08:00 коммит произвёл Facebook GitHub Bot
Родитель 2f5f6c40c2
Коммит 056f1fd2cd
1 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -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<ReactPackage> 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);