From edf5d85be06c50af9b9d80042dfc767850752131 Mon Sep 17 00:00:00 2001 From: Ronak Patel Date: Fri, 29 Apr 2016 11:45:29 -0700 Subject: [PATCH] Passing current activity while creating react instance manager Reviewed By: astreet Differential Revision: D3236602 fb-gh-sync-id: efbac8f0d8c770f2edf6fb447498e650302d98c7 fbshipit-source-id: efbac8f0d8c770f2edf6fb447498e650302d98c7 --- .../facebook/react/ReactInstanceManager.java | 17 +++++++++++++++++ .../react/ReactInstanceManagerImpl.java | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index 2e2ca1603..0a82ddd54 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: * */ @@ -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 1a49bf113..47e966c20 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;