diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index 0f2656027cc1d7..a3d5ee6780759b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -173,6 +173,7 @@ public interface ReactInstanceEventListener { private final MemoryPressureRouter mMemoryPressureRouter; private final @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; private final @Nullable JSIModulePackage mJSIModulePackage; + private final @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder; private List mViewManagers; private class ReactContextInitParams { @@ -218,7 +219,8 @@ public static ReactInstanceManagerBuilder builder() { int minNumShakes, int minTimeLeftInFrameForNonBatchedOperationMs, @Nullable JSIModulePackage jsiModulePackage, - @Nullable Map customPackagerCommandHandlers) { + @Nullable Map customPackagerCommandHandlers, + @Nullable ReactPackageTurboModuleManagerDelegate.Builder tmmDelegateBuilder) { FLog.d(TAG, "ReactInstanceManager.ctor()"); initializeSoLoaderIfNecessary(applicationContext); @@ -249,6 +251,7 @@ public static ReactInstanceManagerBuilder builder() { mLifecycleState = initialLifecycleState; mMemoryPressureRouter = new MemoryPressureRouter(applicationContext); mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler; + mTMMDelegateBuilder = tmmDelegateBuilder; synchronized (mPackages) { PrinterHolder.getPrinter() .logMessage(ReactDebugOverlayTags.RN_CORE, "RNCore: Use Split Packages"); diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java index a3b33f6cfa3b71..c06f71b9a5945f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java @@ -58,6 +58,7 @@ public class ReactInstanceManagerBuilder { private int mMinTimeLeftInFrameForNonBatchedOperationMs = -1; private @Nullable JSIModulePackage mJSIModulesPackage; private @Nullable Map mCustomPackagerCommandHandlers; + private @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder; /* package protected */ ReactInstanceManagerBuilder() {} @@ -224,6 +225,12 @@ public ReactInstanceManagerBuilder setCustomPackagerCommandHandlers( return this; } + public ReactInstanceManagerBuilder setReactPackageTurboModuleManagerDelegateBuilder( + @Nullable ReactPackageTurboModuleManagerDelegate.Builder builder) { + mTMMDelegateBuilder = builder; + return this; + } + /** * Instantiates a new {@link ReactInstanceManager}. Before calling {@code build}, the following * must be called: @@ -286,7 +293,8 @@ public ReactInstanceManager build() { mMinNumShakes, mMinTimeLeftInFrameForNonBatchedOperationMs, mJSIModulesPackage, - mCustomPackagerCommandHandlers); + mCustomPackagerCommandHandlers, + mTMMDelegateBuilder); } private JavaScriptExecutorFactory getDefaultJSExecutorFactory( diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java b/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java index 188ae05f361ee1..d4c457ff87de9c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java @@ -72,7 +72,9 @@ protected ReactInstanceManager createReactInstanceManager() { .setJavaScriptExecutorFactory(getJavaScriptExecutorFactory()) .setUIImplementationProvider(getUIImplementationProvider()) .setJSIModulesPackage(getJSIModulePackage()) - .setInitialLifecycleState(LifecycleState.BEFORE_CREATE); + .setInitialLifecycleState(LifecycleState.BEFORE_CREATE) + .setReactPackageTurboModuleManagerDelegateBuilder( + getReactPackageTurboModuleManagerDelegateBuilder()); for (ReactPackage reactPackage : getPackages()) { builder.addPackage(reactPackage); @@ -99,6 +101,11 @@ protected ReactInstanceManager createReactInstanceManager() { return null; } + protected @Nullable ReactPackageTurboModuleManagerDelegate.Builder + getReactPackageTurboModuleManagerDelegateBuilder() { + return null; + } + protected final Application getApplication() { return mApplication; }