diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java
index 2e2ca160301..0a82ddd5438 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java
@@ -186,6 +186,8 @@ public abstract class ReactInstanceManager {
protected @Nullable UIImplementationProvider mUIImplementationProvider;
protected @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
protected @Nullable JSCConfig mJSCConfig;
+ protected @Nullable Activity mCurrentActivity;
+ protected @Nullable DefaultHardwareBackBtnHandler mDefaultHardwareBackBtnHandler;
protected Builder() {
}
@@ -250,6 +252,17 @@ public abstract class ReactInstanceManager {
return this;
}
+ public Builder setCurrentActivity(Activity activity) {
+ mCurrentActivity = activity;
+ return this;
+ }
+
+ public Builder setDefaultHardwareBackBtnHandler(
+ DefaultHardwareBackBtnHandler defaultHardwareBackBtnHandler) {
+ mDefaultHardwareBackBtnHandler = defaultHardwareBackBtnHandler;
+ return this;
+ }
+
/**
* When {@code true}, developer options such as JS reloading and debugging are enabled.
* Note you still have to call {@link #showDevOptionsDialog} to show the dev menu,
@@ -289,6 +302,8 @@ public abstract class ReactInstanceManager {
* Before calling {@code build}, the following must be called:
*
* - {@link #setApplication}
+ *
- {@link #setCurrentActivity} if the activity has already resumed
+ *
- {@link #setDefaultHardwareBackBtnHandler} if the activity has already resumed
*
- {@link #setJSBundleFile} or {@link #setJSMainModuleName}
*
*/
@@ -310,6 +325,8 @@ public abstract class ReactInstanceManager {
Assertions.assertNotNull(
mApplication,
"Application property has not been set with this builder"),
+ mCurrentActivity,
+ mDefaultHardwareBackBtnHandler,
mJSBundleFile,
mJSMainModuleName,
mPackages,
diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java
index 1a49bf1139e..47e966c207a 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java
@@ -268,6 +268,8 @@ import static com.facebook.react.bridge.ReactMarkerConstants.RUN_JS_BUNDLE_START
/* package */ ReactInstanceManagerImpl(
Context applicationContext,
+ @Nullable Activity currentActivity,
+ @Nullable DefaultHardwareBackBtnHandler defaultHardwareBackBtnHandler,
@Nullable String jsBundleFile,
@Nullable String jsMainModuleName,
List packages,
@@ -284,6 +286,8 @@ import static com.facebook.react.bridge.ReactMarkerConstants.RUN_JS_BUNDLE_START
setDisplayMetrics(applicationContext);
mApplicationContext = applicationContext;
+ mCurrentActivity = currentActivity;
+ mDefaultBackButtonImpl = defaultHardwareBackBtnHandler;
mJSBundleFile = jsBundleFile;
mJSMainModuleName = jsMainModuleName;
mPackages = packages;