diff --git a/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java b/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java index c8287a68c17..34bbe1c198b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java +++ b/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java @@ -143,9 +143,7 @@ public abstract class LazyReactPackage implements ReactPackage { List modules = new ArrayList<>(); for (ModuleSpec holder : getNativeModules(reactContext)) { NativeModule nativeModule; - SystraceMessage.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "createNativeModule") - .arg("module", holder.getType()) - .flush(); + SystraceMessage.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "createNativeModule").flush(); ReactMarker.logMarker(ReactMarkerConstants.CREATE_MODULE_START, holder.getName()); try { nativeModule = holder.getProvider().get(); diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java b/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java index 6f965a8d302..ac27d16dc2e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java @@ -74,6 +74,7 @@ public abstract class ReactNativeHost { .setDevSupportManagerFactory(getDevSupportManagerFactory()) .setRequireActivity(getShouldRequireActivity()) .setSurfaceDelegateFactory(getSurfaceDelegateFactory()) + .setLazyViewManagersEnabled(getLazyViewManagersEnabled()) .setRedBoxHandler(getRedBoxHandler()) .setJavaScriptExecutorFactory(getJavaScriptExecutorFactory()) .setUIImplementationProvider(getUIImplementationProvider()) @@ -135,6 +136,16 @@ public abstract class ReactNativeHost { return true; } + /** + * Returns whether view managers should be created lazily. See {@link + * ViewManagerOnDemandReactPackage} for details. + * + * @experimental + */ + public boolean getLazyViewManagersEnabled() { + return false; + } + /** * Return the {@link SurfaceDelegateFactory} used by NativeModules to get access to a {@link * SurfaceDelegate} to interact with a surface. By default in the mobile platform the {@link diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.java index 927060ca6bb..26183c87a6a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleSpec.java @@ -19,9 +19,8 @@ import javax.inject.Provider; public class ModuleSpec { private static final String TAG = "ModuleSpec"; - private final @Nullable Class mType; private final Provider mProvider; - private final String mName; + private final @Nullable String mName; public static ModuleSpec viewManagerSpec(Provider provider) { return new ModuleSpec(provider); @@ -54,22 +53,16 @@ public class ModuleSpec { * @param provider */ private ModuleSpec(Provider provider) { - mType = null; mProvider = provider; mName = null; } private ModuleSpec(Provider provider, String name) { - mType = null; mProvider = provider; mName = name; } - public @Nullable Class getType() { - return mType; - } - - public String getName() { + public @Nullable String getName() { return mName; }