Skip to content

Commit eb7e89e

Browse files
RSNarafacebook-github-bot
authored andcommitted
Register TurboModuleManagerDelegate builders without JSIModules
Summary: How does an application register a TurboModuleManagerDelegate with ReactInstanceManager? 1. Call ReactInstanceManagerBuilder.setReactPackageTurboModuleManagerDelegateBuilder(ReactPackageTurboModuleManagerDelegate.Builder) 2. Override ReactNativeHost.getReactPackageTurboModuleManagerDelegateBuilder() Changelog: [Android][Added] - Introduce API to allow applications to register TurboModuleManagerDelegates with ReactInstanceManager Reviewed By: mdvacca Differential Revision: D26193055 fbshipit-source-id: bf82e63e6ab1c0c8f12bada92ac6852c992ec9cb
1 parent 48e4e34 commit eb7e89e

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ public interface ReactInstanceEventListener {
173173
private final MemoryPressureRouter mMemoryPressureRouter;
174174
private final @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
175175
private final @Nullable JSIModulePackage mJSIModulePackage;
176+
private final @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder;
176177
private List<ViewManager> mViewManagers;
177178

178179
private class ReactContextInitParams {
@@ -218,7 +219,8 @@ public static ReactInstanceManagerBuilder builder() {
218219
int minNumShakes,
219220
int minTimeLeftInFrameForNonBatchedOperationMs,
220221
@Nullable JSIModulePackage jsiModulePackage,
221-
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers) {
222+
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
223+
@Nullable ReactPackageTurboModuleManagerDelegate.Builder tmmDelegateBuilder) {
222224
FLog.d(TAG, "ReactInstanceManager.ctor()");
223225
initializeSoLoaderIfNecessary(applicationContext);
224226

@@ -249,6 +251,7 @@ public static ReactInstanceManagerBuilder builder() {
249251
mLifecycleState = initialLifecycleState;
250252
mMemoryPressureRouter = new MemoryPressureRouter(applicationContext);
251253
mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
254+
mTMMDelegateBuilder = tmmDelegateBuilder;
252255
synchronized (mPackages) {
253256
PrinterHolder.getPrinter()
254257
.logMessage(ReactDebugOverlayTags.RN_CORE, "RNCore: Use Split Packages");

ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class ReactInstanceManagerBuilder {
5858
private int mMinTimeLeftInFrameForNonBatchedOperationMs = -1;
5959
private @Nullable JSIModulePackage mJSIModulesPackage;
6060
private @Nullable Map<String, RequestHandler> mCustomPackagerCommandHandlers;
61+
private @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder;
6162

6263
/* package protected */ ReactInstanceManagerBuilder() {}
6364

@@ -224,6 +225,12 @@ public ReactInstanceManagerBuilder setCustomPackagerCommandHandlers(
224225
return this;
225226
}
226227

228+
public ReactInstanceManagerBuilder setReactPackageTurboModuleManagerDelegateBuilder(
229+
@Nullable ReactPackageTurboModuleManagerDelegate.Builder builder) {
230+
mTMMDelegateBuilder = builder;
231+
return this;
232+
}
233+
227234
/**
228235
* Instantiates a new {@link ReactInstanceManager}. Before calling {@code build}, the following
229236
* must be called:
@@ -286,7 +293,8 @@ public ReactInstanceManager build() {
286293
mMinNumShakes,
287294
mMinTimeLeftInFrameForNonBatchedOperationMs,
288295
mJSIModulesPackage,
289-
mCustomPackagerCommandHandlers);
296+
mCustomPackagerCommandHandlers,
297+
mTMMDelegateBuilder);
290298
}
291299

292300
private JavaScriptExecutorFactory getDefaultJSExecutorFactory(

ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ protected ReactInstanceManager createReactInstanceManager() {
7272
.setJavaScriptExecutorFactory(getJavaScriptExecutorFactory())
7373
.setUIImplementationProvider(getUIImplementationProvider())
7474
.setJSIModulesPackage(getJSIModulePackage())
75-
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE);
75+
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE)
76+
.setReactPackageTurboModuleManagerDelegateBuilder(
77+
getReactPackageTurboModuleManagerDelegateBuilder());
7678

7779
for (ReactPackage reactPackage : getPackages()) {
7880
builder.addPackage(reactPackage);
@@ -99,6 +101,11 @@ protected ReactInstanceManager createReactInstanceManager() {
99101
return null;
100102
}
101103

104+
protected @Nullable ReactPackageTurboModuleManagerDelegate.Builder
105+
getReactPackageTurboModuleManagerDelegateBuilder() {
106+
return null;
107+
}
108+
102109
protected final Application getApplication() {
103110
return mApplication;
104111
}

0 commit comments

Comments
 (0)