Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions packages/react-native/ReactAndroid/api/ReactAndroid.api
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ public class com/facebook/react/ReactInstanceManagerBuilder {
public fun setLazyViewManagersEnabled (Z)Lcom/facebook/react/ReactInstanceManagerBuilder;
public fun setMinNumShakes (I)Lcom/facebook/react/ReactInstanceManagerBuilder;
public fun setMinTimeLeftInFrameForNonBatchedOperationMs (I)Lcom/facebook/react/ReactInstanceManagerBuilder;
public fun setPausedInDebuggerOverlayManager (Lcom/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager;)Lcom/facebook/react/ReactInstanceManagerBuilder;
public fun setReactPackageTurboModuleManagerDelegateBuilder (Lcom/facebook/react/ReactPackageTurboModuleManagerDelegate$Builder;)Lcom/facebook/react/ReactInstanceManagerBuilder;
public fun setRedBoxHandler (Lcom/facebook/react/devsupport/interfaces/RedBoxHandler;)Lcom/facebook/react/ReactInstanceManagerBuilder;
public fun setRequireActivity (Z)Lcom/facebook/react/ReactInstanceManagerBuilder;
Expand All @@ -321,6 +322,7 @@ public abstract class com/facebook/react/ReactNativeHost {
protected fun getJavaScriptExecutorFactory ()Lcom/facebook/react/bridge/JavaScriptExecutorFactory;
public fun getLazyViewManagersEnabled ()Z
protected abstract fun getPackages ()Ljava/util/List;
protected fun getPausedInDebuggerOverlayManager ()Lcom/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager;
public fun getReactInstanceManager ()Lcom/facebook/react/ReactInstanceManager;
protected fun getReactPackageTurboModuleManagerDelegateBuilder ()Lcom/facebook/react/ReactPackageTurboModuleManagerDelegate$Builder;
protected fun getRedBoxHandler ()Lcom/facebook/react/devsupport/interfaces/RedBoxHandler;
Expand Down Expand Up @@ -1174,6 +1176,7 @@ public class com/facebook/react/bridge/ReactIgnorableMountingException : java/la
public class com/facebook/react/bridge/ReactInstanceManagerInspectorTarget : java/lang/AutoCloseable {
public fun <init> (Lcom/facebook/react/bridge/ReactInstanceManagerInspectorTarget$TargetDelegate;)V
public fun close ()V
public fun sendDebuggerResumeCommand ()V
}

public abstract interface class com/facebook/react/bridge/ReactInstanceManagerInspectorTarget$TargetDelegate {
Expand Down Expand Up @@ -2030,7 +2033,7 @@ public final class com/facebook/react/defaults/DefaultTurboModuleManagerDelegate
}

public final class com/facebook/react/devsupport/BridgeDevSupportManager : com/facebook/react/devsupport/DevSupportManagerBase {
public fun <init> (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;)V
public fun <init> (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;Lcom/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager;)V
public fun handleReloadJS ()V
public fun loadSplitBundleFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSplitBundleCallback;)V
}
Expand Down Expand Up @@ -2060,7 +2063,7 @@ public class com/facebook/react/devsupport/DefaultDevLoadingViewImplementation :
public final class com/facebook/react/devsupport/DefaultDevSupportManagerFactory : com/facebook/react/devsupport/DevSupportManagerFactory {
public fun <init> ()V
public final fun create (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZI)Lcom/facebook/react/devsupport/interfaces/DevSupportManager;
public fun create (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;)Lcom/facebook/react/devsupport/interfaces/DevSupportManager;
public fun create (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;Lcom/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager;)Lcom/facebook/react/devsupport/interfaces/DevSupportManager;
}

public class com/facebook/react/devsupport/DevServerHelper {
Expand Down Expand Up @@ -2100,7 +2103,7 @@ public final class com/facebook/react/devsupport/DevSettingsActivity : android/p
}

public abstract class com/facebook/react/devsupport/DevSupportManagerBase : com/facebook/react/devsupport/interfaces/DevSupportManager {
public fun <init> (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;)V
public fun <init> (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;Lcom/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager;)V
public fun addCustomDevOption (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevOptionHandler;)V
public fun createRootView (Ljava/lang/String;)Landroid/view/View;
public fun createSurfaceDelegate (Ljava/lang/String;)Lcom/facebook/react/common/SurfaceDelegate;
Expand Down Expand Up @@ -2130,6 +2133,7 @@ public abstract class com/facebook/react/devsupport/DevSupportManagerBase : com/
public fun handleException (Ljava/lang/Exception;)V
public fun hasUpToDateJSBundleInCache ()Z
protected fun hideDevLoadingView ()V
public fun hidePausedInDebuggerOverlay ()V
public fun hideRedboxDialog ()V
public fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
public fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V
Expand All @@ -2149,6 +2153,7 @@ public abstract class com/facebook/react/devsupport/DevSupportManagerBase : com/
public fun showDevOptionsDialog ()V
public fun showNewJSError (Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;I)V
public fun showNewJavaError (Ljava/lang/String;Ljava/lang/Throwable;)V
public fun showPausedInDebuggerOverlay (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSupportManager$PausedInDebuggerOverlayCommandListener;)V
public fun startInspector ()V
public fun stopInspector ()V
public fun toggleElementInspector ()V
Expand All @@ -2161,7 +2166,7 @@ public abstract interface class com/facebook/react/devsupport/DevSupportManagerB
}

public abstract interface class com/facebook/react/devsupport/DevSupportManagerFactory {
public abstract fun create (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;)Lcom/facebook/react/devsupport/interfaces/DevSupportManager;
public abstract fun create (Landroid/content/Context;Lcom/facebook/react/devsupport/ReactInstanceDevHelper;Ljava/lang/String;ZLcom/facebook/react/devsupport/interfaces/RedBoxHandler;Lcom/facebook/react/devsupport/interfaces/DevBundleDownloadListener;ILjava/util/Map;Lcom/facebook/react/common/SurfaceDelegateFactory;Lcom/facebook/react/devsupport/interfaces/DevLoadingViewManager;Lcom/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager;)Lcom/facebook/react/devsupport/interfaces/DevSupportManager;
}

public final class com/facebook/react/devsupport/DoubleTapReloadRecognizer {
Expand Down Expand Up @@ -2294,6 +2299,7 @@ public class com/facebook/react/devsupport/ReleaseDevSupportManager : com/facebo
public fun handleException (Ljava/lang/Exception;)V
public fun handleReloadJS ()V
public fun hasUpToDateJSBundleInCache ()Z
public fun hidePausedInDebuggerOverlay ()V
public fun hideRedboxDialog ()V
public fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
public fun loadSplitBundleFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSplitBundleCallback;)V
Expand All @@ -2313,6 +2319,7 @@ public class com/facebook/react/devsupport/ReleaseDevSupportManager : com/facebo
public fun showDevOptionsDialog ()V
public fun showNewJSError (Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;I)V
public fun showNewJavaError (Ljava/lang/String;Ljava/lang/Throwable;)V
public fun showPausedInDebuggerOverlay (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSupportManager$PausedInDebuggerOverlayCommandListener;)V
public fun startInspector ()V
public fun stopInspector ()V
public fun toggleElementInspector ()V
Expand Down Expand Up @@ -2404,6 +2411,7 @@ public abstract interface class com/facebook/react/devsupport/interfaces/DevSupp
public abstract fun getSourceUrl ()Ljava/lang/String;
public abstract fun handleReloadJS ()V
public abstract fun hasUpToDateJSBundleInCache ()Z
public abstract fun hidePausedInDebuggerOverlay ()V
public abstract fun hideRedboxDialog ()V
public abstract fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
public abstract fun loadSplitBundleFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSplitBundleCallback;)V
Expand All @@ -2423,6 +2431,7 @@ public abstract interface class com/facebook/react/devsupport/interfaces/DevSupp
public abstract fun showDevOptionsDialog ()V
public abstract fun showNewJSError (Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;I)V
public abstract fun showNewJavaError (Ljava/lang/String;Ljava/lang/Throwable;)V
public abstract fun showPausedInDebuggerOverlay (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSupportManager$PausedInDebuggerOverlayCommandListener;)V
public abstract fun startInspector ()V
public abstract fun stopInspector ()V
public abstract fun toggleElementInspector ()V
Expand All @@ -2433,6 +2442,10 @@ public abstract interface class com/facebook/react/devsupport/interfaces/DevSupp
public abstract fun run (Ljava/lang/Runnable;)V
}

public abstract interface class com/facebook/react/devsupport/interfaces/DevSupportManager$PausedInDebuggerOverlayCommandListener {
public abstract fun onResume ()V
}

public abstract interface class com/facebook/react/devsupport/interfaces/ErrorCustomizer {
public abstract fun customizeErrorInfo (Landroid/util/Pair;)Landroid/util/Pair;
}
Expand All @@ -2450,6 +2463,11 @@ public abstract interface class com/facebook/react/devsupport/interfaces/Package
public abstract fun onPackagerStatusFetched (Z)V
}

public abstract interface class com/facebook/react/devsupport/interfaces/PausedInDebuggerOverlayManager {
public abstract fun hidePausedInDebuggerOverlay ()V
public abstract fun showPausedInDebuggerOverlay (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DevSupportManager$PausedInDebuggerOverlayCommandListener;)V
}

public abstract interface class com/facebook/react/devsupport/interfaces/RedBoxHandler {
public abstract fun handleRedbox (Ljava/lang/String;[Lcom/facebook/react/devsupport/interfaces/StackFrame;Lcom/facebook/react/devsupport/interfaces/ErrorType;)V
public abstract fun isReportEnabled ()Z
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener;
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager;
import com.facebook.react.devsupport.interfaces.RedBoxHandler;
import com.facebook.react.internal.AndroidChoreographerProvider;
import com.facebook.react.internal.ChoreographerProvider;
Expand Down Expand Up @@ -243,7 +245,8 @@ public static ReactInstanceManagerBuilder builder() {
@Nullable ReactPackageTurboModuleManagerDelegate.Builder tmmDelegateBuilder,
@Nullable SurfaceDelegateFactory surfaceDelegateFactory,
@Nullable DevLoadingViewManager devLoadingViewManager,
@Nullable ChoreographerProvider choreographerProvider) {
@Nullable ChoreographerProvider choreographerProvider,
@Nullable PausedInDebuggerOverlayManager pausedInDebuggerOverlayManager) {
FLog.d(TAG, "ReactInstanceManager.ctor()");
initializeSoLoaderIfNecessary(applicationContext);

Expand Down Expand Up @@ -273,7 +276,8 @@ public static ReactInstanceManagerBuilder builder() {
minNumShakes,
customPackagerCommandHandlers,
surfaceDelegateFactory,
devLoadingViewManager);
devLoadingViewManager,
pausedInDebuggerOverlayManager);
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
mBridgeIdleDebugListener = bridgeIdleDebugListener;
mLifecycleState = initialLifecycleState;
Expand Down Expand Up @@ -1502,7 +1506,21 @@ public void onReload() {

@Override
public void onSetPausedInDebuggerMessage(@Nullable String message) {
// TODO(moti): Implement this
if (message == null) {
mDevSupportManager.hidePausedInDebuggerOverlay();
} else {
mDevSupportManager.showPausedInDebuggerOverlay(
message,
new PausedInDebuggerOverlayCommandListener() {
@Override
public void onResume() {
UiThreadUtil.assertOnUiThread();
if (mInspectorTarget != null) {
mInspectorTarget.sendDebuggerResumeCommand();
}
}
});
}
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager;
import com.facebook.react.devsupport.interfaces.RedBoxHandler;
import com.facebook.react.internal.ChoreographerProvider;
import com.facebook.react.jscexecutor.JSCExecutor;
Expand Down Expand Up @@ -75,6 +76,7 @@ public class ReactInstanceManagerBuilder {
private @Nullable DevLoadingViewManager mDevLoadingViewManager;
private @Nullable JSEngineResolutionAlgorithm mJSEngineResolutionAlgorithm = null;
private @Nullable ChoreographerProvider mChoreographerProvider = null;
private @Nullable PausedInDebuggerOverlayManager mPausedInDebuggerOverlayManager = null;

/* package protected */ ReactInstanceManagerBuilder() {}

Expand Down Expand Up @@ -235,6 +237,12 @@ public ReactInstanceManagerBuilder setDevLoadingViewManager(
return this;
}

public ReactInstanceManagerBuilder setPausedInDebuggerOverlayManager(
@Nullable PausedInDebuggerOverlayManager pausedInDebuggerOverlayManager) {
mPausedInDebuggerOverlayManager = pausedInDebuggerOverlayManager;
return this;
}

/**
* Sets the initial lifecycle state of the host. For example, if the host is already resumed at
* creation time, we wouldn't expect an onResume call until we get an onPause call.
Expand Down Expand Up @@ -365,7 +373,8 @@ public ReactInstanceManager build() {
mTMMDelegateBuilder,
mSurfaceDelegateFactory,
mDevLoadingViewManager,
mChoreographerProvider);
mChoreographerProvider,
mPausedInDebuggerOverlayManager);
}

private JavaScriptExecutorFactory getDefaultJSExecutorFactory(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.facebook.react.common.annotations.DeprecatedInNewArchitecture;
import com.facebook.react.devsupport.DevSupportManagerFactory;
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager;
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager;
import com.facebook.react.devsupport.interfaces.RedBoxHandler;
import com.facebook.react.internal.ChoreographerProvider;
import java.util.List;
Expand Down Expand Up @@ -96,7 +97,8 @@ protected ReactInstanceManagerBuilder getBaseReactInstanceManagerBuilder() {
.setReactPackageTurboModuleManagerDelegateBuilder(
getReactPackageTurboModuleManagerDelegateBuilder())
.setJSEngineResolutionAlgorithm(getJSEngineResolutionAlgorithm())
.setChoreographerProvider(getChoreographerProvider());
.setChoreographerProvider(getChoreographerProvider())
.setPausedInDebuggerOverlayManager(getPausedInDebuggerOverlayManager());

for (ReactPackage reactPackage : getPackages()) {
builder.addPackage(reactPackage);
Expand Down Expand Up @@ -171,6 +173,10 @@ public SurfaceDelegateFactory getSurfaceDelegateFactory() {
return null;
}

protected @Nullable PausedInDebuggerOverlayManager getPausedInDebuggerOverlayManager() {
return null;
}

/**
* Returns the name of the main module. Determines the URL used to fetch the JS bundle from Metro.
* It is only used when dev support is enabled. This is the first file to be executed once the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ public void execute(Runnable command) {

private native HybridData initHybrid(Executor executor, TargetDelegate delegate);

public native void sendDebuggerResumeCommand();

public void close() {
mHybridData.resetNative();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager;
import com.facebook.react.devsupport.interfaces.DevOptionHandler;
import com.facebook.react.devsupport.interfaces.DevSplitBundleCallback;
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager;
import com.facebook.react.devsupport.interfaces.RedBoxHandler;
import com.facebook.react.packagerconnection.RequestHandler;
import java.io.File;
Expand Down Expand Up @@ -74,7 +75,8 @@ public BridgeDevSupportManager(
int minNumShakes,
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
@Nullable SurfaceDelegateFactory surfaceDelegateFactory,
@Nullable DevLoadingViewManager devLoadingViewManager) {
@Nullable DevLoadingViewManager devLoadingViewManager,
@Nullable PausedInDebuggerOverlayManager pausedInDebuggerOverlayManager) {
super(
applicationContext,
reactInstanceManagerHelper,
Expand All @@ -85,7 +87,8 @@ public BridgeDevSupportManager(
minNumShakes,
customPackagerCommandHandlers,
surfaceDelegateFactory,
devLoadingViewManager);
devLoadingViewManager,
pausedInDebuggerOverlayManager);

if (getDevSettings().isStartSamplingProfilerOnInit()) {
// Only start the profiler. If its already running, there is an error
Expand Down
Loading