mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Refactor: ReactInstance: Inline getUIManagerConstants() (#42215)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42215 This diff should not change any behaviour. **Why:** This logic is only used once from the UIConstantsProviderManager. So, let's just inline it. Inlining this method will make ReactInstance.java have fewer private methods, which'll make ReactInstance.java easier to read. **Concern:** Inlining this method into ReactInstance's constructor will make the constructor too hard to read. - I think it'll be fine: we will simplify this method significantly in D52399003. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D52399002 fbshipit-source-id: 8c0dc69af86109da8144546347eecd2e01c0e0be
This commit is contained in:
committed by
Facebook GitHub Bot
parent
0df4511839
commit
a31a4569e1
+29
-32
@@ -23,7 +23,6 @@ import com.facebook.react.bridge.JSBundleLoader;
|
||||
import com.facebook.react.bridge.JSBundleLoaderDelegate;
|
||||
import com.facebook.react.bridge.LifecycleEventListener;
|
||||
import com.facebook.react.bridge.NativeArray;
|
||||
import com.facebook.react.bridge.NativeMap;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
||||
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
||||
@@ -257,7 +256,35 @@ final class ReactInstance {
|
||||
// We want to match this beahavior.
|
||||
(UIConstantsProvider)
|
||||
() -> {
|
||||
return getUIManagerConstants();
|
||||
List<ViewManager> viewManagers = new ArrayList<ViewManager>();
|
||||
boolean canLoadViewManagersLazily = true;
|
||||
|
||||
List<ReactPackage> packages = mReactPackages;
|
||||
for (ReactPackage reactPackage : packages) {
|
||||
if (!(reactPackage instanceof ViewManagerOnDemandReactPackage)) {
|
||||
canLoadViewManagersLazily = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 1, Retrive view managers via on demand loading
|
||||
if (canLoadViewManagersLazily) {
|
||||
for (String viewManagerName : getViewManagerNames()) {
|
||||
viewManagers.add(createViewManager(viewManagerName));
|
||||
}
|
||||
} else {
|
||||
// 2, There are packages that don't implement ViewManagerOnDemandReactPackage
|
||||
// so we retrieve
|
||||
// view managers via eager loading
|
||||
for (ReactPackage reactPackage : packages) {
|
||||
List<ViewManager> viewManagersInPackage =
|
||||
reactPackage.createViewManagers(mBridgelessReactContext);
|
||||
viewManagers.addAll(viewManagersInPackage);
|
||||
}
|
||||
}
|
||||
Map<String, Object> constants =
|
||||
UIManagerModule.createConstants(
|
||||
viewManagers, new HashMap<>(), new HashMap<>());
|
||||
return Arguments.makeNativeMap(constants);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -554,34 +581,4 @@ final class ReactInstance {
|
||||
}
|
||||
return uniqueNames;
|
||||
}
|
||||
|
||||
private @NonNull NativeMap getUIManagerConstants() {
|
||||
List<ViewManager> viewManagers = new ArrayList<ViewManager>();
|
||||
boolean canLoadViewManagersLazily = true;
|
||||
|
||||
List<ReactPackage> packages = mReactPackages;
|
||||
for (ReactPackage reactPackage : packages) {
|
||||
if (!(reactPackage instanceof ViewManagerOnDemandReactPackage)) {
|
||||
canLoadViewManagersLazily = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 1, Retrive view managers via on demand loading
|
||||
if (canLoadViewManagersLazily) {
|
||||
for (String viewManagerName : getViewManagerNames()) {
|
||||
viewManagers.add(createViewManager(viewManagerName));
|
||||
}
|
||||
} else {
|
||||
// 2, There are packages that don't implement ViewManagerOnDemandReactPackage so we retrieve
|
||||
// view managers via eager loading
|
||||
for (ReactPackage reactPackage : packages) {
|
||||
List<ViewManager> viewManagersInPackage =
|
||||
reactPackage.createViewManagers(mBridgelessReactContext);
|
||||
viewManagers.addAll(viewManagersInPackage);
|
||||
}
|
||||
}
|
||||
Map<String, Object> constants =
|
||||
UIManagerModule.createConstants(viewManagers, new HashMap<>(), new HashMap<>());
|
||||
return Arguments.makeNativeMap(constants);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user