From a31a4569e1369482f45dd2bd4ba25ead6b29b3b8 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Wed, 10 Jan 2024 12:35:33 -0800 Subject: [PATCH] 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 --- .../facebook/react/runtime/ReactInstance.java | 61 +++++++++---------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java index f517fd4cee6..178d4bf0a5f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java @@ -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 viewManagers = new ArrayList(); + boolean canLoadViewManagersLazily = true; + + List 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 viewManagersInPackage = + reactPackage.createViewManagers(mBridgelessReactContext); + viewManagers.addAll(viewManagersInPackage); + } + } + Map 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 viewManagers = new ArrayList(); - boolean canLoadViewManagersLazily = true; - - List 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 viewManagersInPackage = - reactPackage.createViewManagers(mBridgelessReactContext); - viewManagers.addAll(viewManagersInPackage); - } - } - Map constants = - UIManagerModule.createConstants(viewManagers, new HashMap<>(), new HashMap<>()); - return Arguments.makeNativeMap(constants); - } }