From d569d390f0a5ef691daefb9599f5c0d46c49993e Mon Sep 17 00:00:00 2001 From: Lulu Wu Date: Wed, 18 Oct 2023 08:07:05 -0700 Subject: [PATCH] Enable fast refresh banner (#40999) Summary: Fast refresh banner for Android was introduced for Bridge-only (D42286425), in this diff we enable it for Bridgeless as well. Changelog: [Android][Changed] - Enable fast refresh banner for Bridgeless Reviewed By: cortinico Differential Revision: D50318991 --- .../react/devsupport/BridgeDevSupportManager.java | 11 ----------- .../react/devsupport/DevSupportManagerBase.java | 6 +++++- .../react/modules/devloading/DevLoadingModule.java | 12 +++--------- .../com/facebook/react/runtime/ReactHostImpl.java | 2 ++ 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java index 9b3a7d7486ac34..79977623cde704 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java @@ -86,9 +86,6 @@ public BridgeDevSupportManager( surfaceDelegateFactory, devLoadingViewManager); - mReactInstanceManagerHelper = reactInstanceManagerHelper; - mDevLoadingViewManager = devLoadingViewManager; - if (getDevSettings().isStartSamplingProfilerOnInit()) { // Only start the profiler. If its already running, there is an error if (!mIsSamplingProfilerEnabled) { @@ -112,14 +109,6 @@ public void onOptionSelected() { }); } - public DevLoadingViewManager getDevLoadingViewManager() { - return mDevLoadingViewManager; - } - - public ReactInstanceDevHelper getReactInstanceManagerHelper() { - return mReactInstanceManagerHelper; - } - @Override protected String getUniqueTag() { return "Bridge"; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java index bed2db92d8630f..57f0b9ac76fa1f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java @@ -695,7 +695,11 @@ public DevServerHelper getDevServerHelper() { return mDevServerHelper; } - protected ReactInstanceDevHelper getReactInstanceDevHelper() { + public DevLoadingViewManager getDevLoadingViewManager() { + return mDevLoadingViewManager; + } + + public ReactInstanceDevHelper getReactInstanceDevHelper() { return mReactInstanceDevHelper; } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java index f5e3cf13cb3b4c..8bd3731584de6c 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java @@ -13,8 +13,7 @@ import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.UiThreadUtil; -import com.facebook.react.devsupport.BridgeDevSupportManager; -import com.facebook.react.devsupport.DefaultDevLoadingViewImplementation; +import com.facebook.react.devsupport.DevSupportManagerBase; import com.facebook.react.devsupport.interfaces.DevLoadingViewManager; import com.facebook.react.module.annotations.ReactModule; @@ -28,14 +27,9 @@ public class DevLoadingModule extends NativeDevLoadingViewSpec { public DevLoadingModule(ReactApplicationContext reactContext) { super(reactContext); mJSExceptionHandler = reactContext.getJSExceptionHandler(); - if (mJSExceptionHandler != null && mJSExceptionHandler instanceof BridgeDevSupportManager) { + if (mJSExceptionHandler != null && mJSExceptionHandler instanceof DevSupportManagerBase) { mDevLoadingViewManager = - ((BridgeDevSupportManager) mJSExceptionHandler).getDevLoadingViewManager(); - mDevLoadingViewManager = - mDevLoadingViewManager != null - ? mDevLoadingViewManager - : new DefaultDevLoadingViewImplementation( - ((BridgeDevSupportManager) mJSExceptionHandler).getReactInstanceManagerHelper()); + ((DevSupportManagerBase) mJSExceptionHandler).getDevLoadingViewManager(); } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index b8ed249d140798..1b3177d84bfcbb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -922,6 +922,7 @@ private Task newGetOrCreateReactInstanceTask() { final JSBundleLoader bundleLoader = task.getResult(); final BridgelessReactContext reactContext = getOrCreateReactContext(); final DevSupportManager devSupportManager = getDevSupportManager(); + reactContext.setJSExceptionHandler(devSupportManager); log(method, "Creating ReactInstance"); final ReactInstance instance = @@ -1036,6 +1037,7 @@ private Task oldGetOrCreateReactInstanceTask() { final BridgelessReactContext reactContext = getOrCreateReactContext(); final DevSupportManager devSupportManager = getDevSupportManager(); + reactContext.setJSExceptionHandler(devSupportManager); return getJsBundleLoader() .onSuccess(