22import android .app .Application ;
33import androidx .annotation .NonNull ;
44import com .facebook .react .PackageList ;
5- import com .facebook .react .ReactInstanceManager ;
65import com .facebook .react .ReactNativeHost ;
76import com .facebook .react .ReactPackage ;
87import com .facebook .react .ReactPackageTurboModuleManagerDelegate ;
9- import com .facebook .react .bridge .JSIModulePackage ;
10- import com .facebook .react .bridge .JSIModuleProvider ;
11- import com .facebook .react .bridge .JSIModuleSpec ;
12- import com .facebook .react .bridge .JSIModuleType ;
13- import com .facebook .react .bridge .JavaScriptContextHolder ;
14- import com .facebook .react .bridge .ReactApplicationContext ;
15- import com .facebook .react .bridge .UIManager ;
16- import com .facebook .react .fabric .ComponentFactory ;
17- import com .facebook .react .fabric .CoreComponentsRegistry ;
18- import com .facebook .react .fabric .EmptyReactNativeConfig ;
19- import com .facebook .react .fabric .FabricJSIModuleProvider ;
20- import com .facebook .react .uimanager .ViewManagerRegistry ;
21- import com .rnuilib .BuildConfig ;
22- import java .util .ArrayList ;
238import java .util .List ;
249/**
2510 * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both
@@ -59,43 +44,4 @@ protected String getJSMainModuleName() {
5944 // for the new architecture and to use TurboModules correctly.
6045 return new MainApplicationTurboModuleManagerDelegate .Builder ();
6146 }
62- @ Override
63- protected JSIModulePackage getJSIModulePackage () {
64- return new JSIModulePackage () {
65- @ Override
66- public List <JSIModuleSpec > getJSIModules (
67- final ReactApplicationContext reactApplicationContext ,
68- final JavaScriptContextHolder jsContext ) {
69- final List <JSIModuleSpec > specs = new ArrayList <>();
70- // Here we provide a new JSIModuleSpec that will be responsible of providing the
71- // custom Fabric Components.
72- specs .add (
73- new JSIModuleSpec () {
74- @ Override
75- public JSIModuleType getJSIModuleType () {
76- return JSIModuleType .UIManager ;
77- }
78- @ Override
79- public JSIModuleProvider <UIManager > getJSIModuleProvider () {
80- final ComponentFactory componentFactory = new ComponentFactory ();
81- CoreComponentsRegistry .register (componentFactory );
82- // Here we register a Components Registry.
83- // The one that is generated with the template contains no components
84- // and just provides you the one from React Native core.
85- MainComponentsRegistry .register (componentFactory );
86- final ReactInstanceManager reactInstanceManager = getReactInstanceManager ();
87- ViewManagerRegistry viewManagerRegistry =
88- new ViewManagerRegistry (
89- reactInstanceManager .getOrCreateViewManagers (reactApplicationContext ));
90- return new FabricJSIModuleProvider (
91- reactApplicationContext ,
92- componentFactory ,
93- new EmptyReactNativeConfig (),
94- viewManagerRegistry );
95- }
96- });
97- return specs ;
98- }
99- };
100- }
10147}
0 commit comments