Skip to content

Commit 20a8378

Browse files
committed
[Fabric] Provide the JSI Module Package
1 parent cf1378e commit 20a8378

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

android/app/src/main/java/com/rnnewarchitectureapp/MainApplication.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,27 @@
1313
import com.facebook.react.ReactPackage;
1414
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
1515
import com.facebook.react.TurboReactPackage;
16+
import com.facebook.react.bridge.JSIModulePackage;
17+
import com.facebook.react.bridge.JSIModuleProvider;
18+
import com.facebook.react.bridge.JSIModuleSpec;
19+
import com.facebook.react.bridge.JSIModuleType;
20+
import com.facebook.react.bridge.JavaScriptContextHolder;
1621
import com.facebook.react.bridge.NativeModule;
1722
import com.facebook.react.bridge.ReactApplicationContext;
23+
import com.facebook.react.bridge.UIManager;
1824
import com.facebook.react.config.ReactFeatureFlags;
25+
import com.facebook.react.fabric.ComponentFactory;
26+
import com.facebook.react.fabric.CoreComponentsRegistry;
27+
import com.facebook.react.fabric.EmptyReactNativeConfig;
28+
import com.facebook.react.fabric.FabricJSIModuleProvider;
1929
import com.facebook.react.module.model.ReactModuleInfo;
2030
import com.facebook.react.module.model.ReactModuleInfoProvider;
31+
import com.facebook.react.uimanager.ViewManagerRegistry;
2132
import com.facebook.soloader.SoLoader;
2233
import com.rnnewarchitectureapp.modules.MainApplicationTurboModuleManagerDelegate;
2334
import com.rnnewarchitectureapp.modules.NativeAnswerSolver;
2435
import java.lang.reflect.InvocationTargetException;
36+
import java.util.ArrayList;
2537
import java.util.HashMap;
2638
import java.util.List;
2739
import java.util.Map;
@@ -84,6 +96,44 @@ protected String getJSMainModuleName() {
8496
protected ReactPackageTurboModuleManagerDelegate.Builder getReactPackageTurboModuleManagerDelegateBuilder() {
8597
return new MainApplicationTurboModuleManagerDelegate.Builder();
8698
}
99+
100+
@Override
101+
protected JSIModulePackage getJSIModulePackage() {
102+
return new JSIModulePackage() {
103+
@Override
104+
public List<JSIModuleSpec> getJSIModules(
105+
final ReactApplicationContext reactApplicationContext,
106+
final JavaScriptContextHolder jsContext) {
107+
final List<JSIModuleSpec> specs = new ArrayList<>();
108+
specs.add(new JSIModuleSpec() {
109+
@Override
110+
public JSIModuleType getJSIModuleType() {
111+
return JSIModuleType.UIManager;
112+
}
113+
114+
@Override
115+
public JSIModuleProvider<UIManager> getJSIModuleProvider() {
116+
final ComponentFactory componentFactory = new ComponentFactory();
117+
CoreComponentsRegistry.register(componentFactory);
118+
119+
final ReactInstanceManager reactInstanceManager = getReactInstanceManager();
120+
121+
ViewManagerRegistry viewManagerRegistry =
122+
new ViewManagerRegistry(
123+
reactInstanceManager.getOrCreateViewManagers(
124+
reactApplicationContext));
125+
126+
return new FabricJSIModuleProvider(
127+
reactApplicationContext,
128+
componentFactory,
129+
new EmptyReactNativeConfig(),
130+
viewManagerRegistry);
131+
}
132+
});
133+
return specs;
134+
}
135+
};
136+
}
87137
};
88138

89139
@Override

0 commit comments

Comments
 (0)