From de03b77c5fe3a910536cf46adc0cd83f195fd363 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Wed, 10 Jan 2024 12:35:33 -0800 Subject: [PATCH] Make getViewManagerNames() return eager view manager names (#42217) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42217 Make ViewManagerResolver.getViewManagerNames() also return eager ViewManager names I think the only impact is [this exception message](https://github.com/facebook/react-native/blob/192a88d522befa3b5cc073d441210f8148e8ac69/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java#L63-L67) in ViewManagerRegistry: https://www.internalfb.com/code/fbsource/[897438be9e04]/xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java?lines=63-67 Changelog: [Internal] Reviewed By: cortinico Differential Revision: D52399005 fbshipit-source-id: f34c7c5ae7cc7db8a7b4a83221215c05551c1e56 --- .../com/facebook/react/runtime/ReactInstance.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 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 f9a189a6b43..cae814f1d10 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 @@ -232,7 +232,8 @@ final class ReactInstance { unbufferedRuntimeExecutor, (ComponentNameResolver) () -> { - Collection viewManagerNames = mViewManagerResolver.getViewManagerNames(); + Collection viewManagerNames = + mViewManagerResolver.getLazyViewManagerNames(); if (viewManagerNames.size() < 1) { FLog.e(TAG, "No ViewManager names found"); return new String[0]; @@ -269,7 +270,8 @@ final class ReactInstance { } // 1, Retrive view managers via on demand loading if (canLoadViewManagersLazily) { - for (String viewManagerName : mViewManagerResolver.getViewManagerNames()) { + for (String viewManagerName : + mViewManagerResolver.getLazyViewManagerNames()) { viewManagers.add(mViewManagerResolver.getViewManager(viewManagerName)); } } else { @@ -539,7 +541,10 @@ final class ReactInstance { @Override public synchronized Collection getViewManagerNames() { - return getLazyViewManagerNames(); + Set allViewManagerNames = new HashSet<>(); + allViewManagerNames.addAll(getLazyViewManagerNames()); + allViewManagerNames.addAll(getEagerViewManagerMap().keySet()); + return allViewManagerNames; } private Map getEagerViewManagerMap() { @@ -588,7 +593,7 @@ final class ReactInstance { return null; } - private Collection getLazyViewManagerNames() { + public synchronized Collection getLazyViewManagerNames() { Set uniqueNames = new HashSet<>(); for (ReactPackage reactPackage : mReactPackages) { if (reactPackage instanceof ViewManagerOnDemandReactPackage) {