From c30f2b6205a04bd948bd2bf8a243f82268bd7481 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Fri, 1 Dec 2023 12:19:07 -0800 Subject: [PATCH] Refactor DefaultReactNativeHost to use the new way of Fabric initialization (#41739) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41739 Refactoring `DefaultReactNativeHost` to use the new way of Fabric initialization through `FabricUIManagerProviderImpl` Reviewed By: philIip Differential Revision: D51719555 fbshipit-source-id: bad471a8a273accecb0641ccaa77223534cd45fd --- .../react/defaults/DefaultReactNativeHost.kt | 36 ++++++------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt index 60c1e791912..e5683059a68 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt @@ -14,12 +14,8 @@ import com.facebook.react.ReactHost import com.facebook.react.ReactInstanceManager import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackageTurboModuleManagerDelegate -import com.facebook.react.bridge.JSIModulePackage -import com.facebook.react.bridge.JSIModuleProvider -import com.facebook.react.bridge.JSIModuleSpec -import com.facebook.react.bridge.JSIModuleType import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.bridge.UIManager +import com.facebook.react.bridge.UIManagerProvider import com.facebook.react.fabric.ComponentFactory import com.facebook.react.fabric.FabricUIManagerProviderImpl import com.facebook.react.fabric.ReactNativeConfig @@ -46,30 +42,20 @@ protected constructor( null } - override fun getJSIModulePackage(): JSIModulePackage? = + override fun getUIManagerProvider(): UIManagerProvider? = if (isNewArchEnabled) { - JSIModulePackage { reactApplicationContext: ReactApplicationContext, _ -> - listOf( - object : JSIModuleSpec { - override fun getJSIModuleType(): JSIModuleType = JSIModuleType.UIManager + UIManagerProvider { reactApplicationContext: ReactApplicationContext -> + val componentFactory = ComponentFactory() - override fun getJSIModuleProvider(): JSIModuleProvider { - val componentFactory = ComponentFactory() + DefaultComponentsRegistry.register(componentFactory) - DefaultComponentsRegistry.register(componentFactory) + val reactInstanceManager: ReactInstanceManager = getReactInstanceManager() - val reactInstanceManager: ReactInstanceManager = getReactInstanceManager() - - val viewManagers = - reactInstanceManager.getOrCreateViewManagers(reactApplicationContext) - val viewManagerRegistry = ViewManagerRegistry(viewManagers) - return FabricUIManagerProviderImpl( - reactApplicationContext, - componentFactory, - ReactNativeConfig.DEFAULT_CONFIG, - viewManagerRegistry) - } - }) + val viewManagers = reactInstanceManager.getOrCreateViewManagers(reactApplicationContext) + val viewManagerRegistry = ViewManagerRegistry(viewManagers) + FabricUIManagerProviderImpl( + componentFactory, ReactNativeConfig.DEFAULT_CONFIG, viewManagerRegistry) + .createUIManager(reactApplicationContext) } } else { null