Expose lazyViewManagers option on ReactNativeHost
Summary: Changelog: [Android][Added] Option to enable lazyViewManager support with `ViewManagerOnDemandReactPackage` Reviewed By: RSNara Differential Revision: D36130066 fbshipit-source-id: b8b04b46f59248baacdf1717f7e32b45e56dd2b8
This commit is contained in:
Родитель
d493f45bd9
Коммит
d4b59cd9d0
|
@ -143,9 +143,7 @@ public abstract class LazyReactPackage implements ReactPackage {
|
|||
List<NativeModule> 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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -19,9 +19,8 @@ import javax.inject.Provider;
|
|||
public class ModuleSpec {
|
||||
|
||||
private static final String TAG = "ModuleSpec";
|
||||
private final @Nullable Class<? extends NativeModule> mType;
|
||||
private final Provider<? extends NativeModule> mProvider;
|
||||
private final String mName;
|
||||
private final @Nullable String mName;
|
||||
|
||||
public static ModuleSpec viewManagerSpec(Provider<? extends NativeModule> provider) {
|
||||
return new ModuleSpec(provider);
|
||||
|
@ -54,22 +53,16 @@ public class ModuleSpec {
|
|||
* @param provider
|
||||
*/
|
||||
private ModuleSpec(Provider<? extends NativeModule> provider) {
|
||||
mType = null;
|
||||
mProvider = provider;
|
||||
mName = null;
|
||||
}
|
||||
|
||||
private ModuleSpec(Provider<? extends NativeModule> provider, String name) {
|
||||
mType = null;
|
||||
mProvider = provider;
|
||||
mName = name;
|
||||
}
|
||||
|
||||
public @Nullable Class<? extends NativeModule> getType() {
|
||||
return mType;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
public @Nullable String getName() {
|
||||
return mName;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче