From b309af79e8bf2eb741db83b00359a73fe1b458a5 Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Thu, 4 Apr 2024 11:19:54 -0700 Subject: [PATCH] Introduce DevSupportManager.openDebugger() method (#43685) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43685 Changelog: [Changed][Android] Expose `openDebugger()` method on `DevSupportManager` Exposes the `openDebugger()` method on `DevSupportManager` for ease of integration by RN Android frameworks. Reviewed By: cortinico, arushikesarwani94 Differential Revision: D55408820 fbshipit-source-id: f06684de47cee23642bf893afaedb2755453f253 --- .../react-native/ReactAndroid/api/ReactAndroid.api | 3 +++ .../facebook/react/devsupport/DevServerHelper.java | 2 +- .../react/devsupport/DevSupportManagerBase.java | 13 +++++++------ .../react/devsupport/ReleaseDevSupportManager.java | 3 +++ .../devsupport/interfaces/DevSupportManager.java | 3 +++ 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 419c1a3be7d..efee16c3e4e 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -2131,6 +2131,7 @@ public abstract class com/facebook/react/devsupport/DevSupportManagerBase : com/ public fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V public fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V public fun onReactInstanceDestroyed (Lcom/facebook/react/bridge/ReactContext;)V + public fun openDebugger ()V public fun processErrorCustomizers (Landroid/util/Pair;)Landroid/util/Pair; public fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V public fun reloadJSFromServer (Ljava/lang/String;)V @@ -2295,6 +2296,7 @@ public class com/facebook/react/devsupport/ReleaseDevSupportManager : com/facebo public fun loadSplitBundleFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSplitBundleCallback;)V public fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V public fun onReactInstanceDestroyed (Lcom/facebook/react/bridge/ReactContext;)V + public fun openDebugger ()V public fun processErrorCustomizers (Landroid/util/Pair;)Landroid/util/Pair; public fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V public fun reloadJSFromServer (Ljava/lang/String;)V @@ -2404,6 +2406,7 @@ public abstract interface class com/facebook/react/devsupport/interfaces/DevSupp public abstract fun loadSplitBundleFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSplitBundleCallback;)V public abstract fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V public abstract fun onReactInstanceDestroyed (Lcom/facebook/react/bridge/ReactContext;)V + public abstract fun openDebugger ()V public abstract fun processErrorCustomizers (Landroid/util/Pair;)Landroid/util/Pair; public abstract fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V public abstract fun reloadJSFromServer (Ljava/lang/String;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java index f67b9cb000b..6939f1e80a7 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java @@ -491,7 +491,7 @@ public class DevServerHelper { } /** Attempt to open the JS debugger on the host machine (on-device CDP debugging). */ - public void openDebugger(final ReactContext context, final String errorMessage) { + public void openDebugger(@Nullable final ReactContext context, final String errorMessage) { // TODO(huntie): Requests to dev server should not assume 'http' URL scheme String requestUrl = String.format( 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 5da3374ca46..bd4240fff3c 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 @@ -384,12 +384,7 @@ public abstract class DevSupportManagerBase implements DevSupportManager { if (!isConnected) { disabledItemKeys.add(debuggerItemString); } - options.put( - debuggerItemString, - () -> - mDevServerHelper.openDebugger( - mCurrentContext, - mApplicationContext.getString(R.string.catalyst_open_debugger_error))); + options.put(debuggerItemString, () -> openDebugger()); } options.put( @@ -1163,4 +1158,10 @@ public abstract class DevSupportManagerBase implements DevSupportManager { context.registerReceiver(receiver, filter); } } + + @Override + public void openDebugger() { + mDevServerHelper.openDebugger( + mCurrentContext, mApplicationContext.getString(R.string.catalyst_open_debugger_error)); + } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java index a3d7af149ea..82e36f7ad48 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java @@ -204,4 +204,7 @@ public class ReleaseDevSupportManager implements DevSupportManager { public @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName) { return null; } + + @Override + public void openDebugger() {} } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java index 41636b600ac..b293faa801f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java @@ -128,4 +128,7 @@ public interface DevSupportManager extends JSExceptionHandler { */ @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName); + + /** Attempt to open the JS debugger on the host machine. */ + void openDebugger(); }