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 deleted file mode 100644 index d0b8ff50b0b..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.devsupport; - -import android.app.Activity; -import android.util.Pair; -import android.view.View; -import androidx.annotation.Nullable; -import com.facebook.infer.annotation.Nullsafe; -import com.facebook.react.bridge.DefaultJSExceptionHandler; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.common.SurfaceDelegate; -import com.facebook.react.devsupport.interfaces.BundleLoadCallback; -import com.facebook.react.devsupport.interfaces.DevOptionHandler; -import com.facebook.react.devsupport.interfaces.DevSplitBundleCallback; -import com.facebook.react.devsupport.interfaces.DevSupportManager; -import com.facebook.react.devsupport.interfaces.ErrorCustomizer; -import com.facebook.react.devsupport.interfaces.ErrorType; -import com.facebook.react.devsupport.interfaces.PackagerStatusCallback; -import com.facebook.react.devsupport.interfaces.RedBoxHandler; -import com.facebook.react.devsupport.interfaces.StackFrame; -import com.facebook.react.modules.debug.interfaces.DeveloperSettings; -import java.io.File; - -/** - * A dummy implementation of {@link DevSupportManager} to be used in production mode where - * development features aren't needed. - */ -@Nullsafe(Nullsafe.Mode.LOCAL) -public class ReleaseDevSupportManager implements DevSupportManager { - - private final DefaultJSExceptionHandler mDefaultJSExceptionHandler; - - public ReleaseDevSupportManager() { - mDefaultJSExceptionHandler = new DefaultJSExceptionHandler(); - } - - @Override - public void showNewJavaError(@Nullable String message, @Nullable Throwable e) {} - - @Override - public void addCustomDevOption( - @Nullable String optionName, @Nullable DevOptionHandler optionHandler) {} - - @Override - public void showNewJSError( - @Nullable String message, @Nullable ReadableArray details, int errorCookie) {} - - @Override - public @Nullable View createRootView(@Nullable String appKey) { - return null; - } - - @Override - public void destroyRootView(@Nullable View rootView) {} - - @Override - public void updateJSError( - @Nullable String message, @Nullable ReadableArray details, int errorCookie) {} - - @Override - public void hideRedboxDialog() {} - - @Override - public void showDevOptionsDialog() {} - - @Override - public void setDevSupportEnabled(boolean isDevSupportEnabled) {} - - @Override - public void startInspector() {} - - @Override - public void stopInspector() {} - - @Override - public void setHotModuleReplacementEnabled(boolean isHotModuleReplacementEnabled) {} - - @Override - public void setRemoteJSDebugEnabled(boolean isRemoteJSDebugEnabled) {} - - @Override - public void setFpsDebugEnabled(boolean isFpsDebugEnabled) {} - - @Override - public void toggleElementInspector() {} - - @Override - public boolean getDevSupportEnabled() { - return false; - } - - @Override - public @Nullable DeveloperSettings getDevSettings() { - return null; - } - - @Override - public @Nullable RedBoxHandler getRedBoxHandler() { - return null; - } - - @Override - public void onNewReactContextCreated(ReactContext reactContext) {} - - @Override - public void onReactInstanceDestroyed(ReactContext reactContext) {} - - @Override - public @Nullable String getSourceMapUrl() { - return null; - } - - @Override - public @Nullable String getSourceUrl() { - return null; - } - - @Override - public @Nullable String getJSBundleURLForRemoteDebugging() { - return null; - } - - @Override - public @Nullable String getDownloadedJSBundleFile() { - return null; - } - - @Override - public boolean hasUpToDateJSBundleInCache() { - return false; - } - - @Override - public void reloadSettings() {} - - @Override - public void handleReloadJS() {} - - @Override - public void reloadJSFromServer(final String bundleURL, final BundleLoadCallback callback) {} - - @Override - public void loadSplitBundleFromServer(String bundlePath, DevSplitBundleCallback callback) {} - - @Override - public void isPackagerRunning(final PackagerStatusCallback callback) { - callback.onPackagerStatusFetched(false); - } - - @Override - public @Nullable File downloadBundleResourceFromUrlSync( - final String resourceURL, @Nullable final File outputFile) { - return null; - } - - @Override - public @Nullable String getLastErrorTitle() { - return null; - } - - @Override - public @Nullable StackFrame[] getLastErrorStack() { - return null; - } - - @Override - public @Nullable ErrorType getLastErrorType() { - return null; - } - - @Override - public int getLastErrorCookie() { - return 0; - } - - @Override - public void registerErrorCustomizer(@Nullable ErrorCustomizer errorCustomizer) {} - - @Override - public @Nullable Pair processErrorCustomizers( - @Nullable Pair errorInfo) { - return errorInfo; - } - - @Override - public void setPackagerLocationCustomizer( - @Nullable DevSupportManager.PackagerLocationCustomizer packagerLocationCustomizer) {} - - @Override - public void handleException(Exception e) { - mDefaultJSExceptionHandler.handleException(e); - } - - @Override - public @Nullable Activity getCurrentActivity() { - return null; - } - - @Override - public @Nullable SurfaceDelegate createSurfaceDelegate(@Nullable String moduleName) { - return null; - } - - @Override - public void openDebugger() {} - - @Override - public void showPausedInDebuggerOverlay( - String message, PausedInDebuggerOverlayCommandListener listener) {} - - @Override - public void hidePausedInDebuggerOverlay() {} - - @Override - public void setAdditionalOptionForPackager(String name, String value) {} -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt new file mode 100644 index 00000000000..ba9e0aa03c5 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt @@ -0,0 +1,168 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.devsupport + +import android.app.Activity +import android.util.Pair +import android.view.View +import com.facebook.react.bridge.DefaultJSExceptionHandler +import com.facebook.react.bridge.ReactContext +import com.facebook.react.bridge.ReadableArray +import com.facebook.react.common.SurfaceDelegate +import com.facebook.react.devsupport.interfaces.BundleLoadCallback +import com.facebook.react.devsupport.interfaces.DevOptionHandler +import com.facebook.react.devsupport.interfaces.DevSplitBundleCallback +import com.facebook.react.devsupport.interfaces.DevSupportManager +import com.facebook.react.devsupport.interfaces.DevSupportManager.PackagerLocationCustomizer +import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener +import com.facebook.react.devsupport.interfaces.ErrorCustomizer +import com.facebook.react.devsupport.interfaces.ErrorType +import com.facebook.react.devsupport.interfaces.PackagerStatusCallback +import com.facebook.react.devsupport.interfaces.RedBoxHandler +import com.facebook.react.devsupport.interfaces.StackFrame +import com.facebook.react.modules.debug.interfaces.DeveloperSettings +import java.io.File + +/** + * A dummy implementation of [DevSupportManager] to be used in production mode where development + * features aren't needed. + */ +public open class ReleaseDevSupportManager : DevSupportManager { + + private val defaultJSExceptionHandler: DefaultJSExceptionHandler = DefaultJSExceptionHandler() + + override public fun showNewJavaError(message: String?, e: Throwable?): Unit = Unit + + override public fun addCustomDevOption( + optionName: String?, + optionHandler: DevOptionHandler? + ): Unit = Unit + + override public fun showNewJSError( + message: String?, + details: ReadableArray?, + errorCookie: Int + ): Unit = Unit + + override public fun createRootView(appKey: String?): View? = null + + override public fun destroyRootView(rootView: View?): Unit = Unit + + override public fun updateJSError( + message: String?, + details: ReadableArray?, + errorCookie: Int + ): Unit = Unit + + override public fun hideRedboxDialog(): Unit = Unit + + override public fun showDevOptionsDialog(): Unit = Unit + + override public fun startInspector(): Unit = Unit + + override public fun stopInspector(): Unit = Unit + + override public fun setHotModuleReplacementEnabled(isHotModuleReplacementEnabled: Boolean): Unit = + Unit + + override public fun setRemoteJSDebugEnabled(isRemoteJSDebugEnabled: Boolean): Unit = Unit + + override public fun setFpsDebugEnabled(isFpsDebugEnabled: Boolean): Unit = Unit + + override public fun toggleElementInspector(): Unit = Unit + + override public var devSupportEnabled: Boolean + get() = false + @Suppress("UNUSED_PARAMETER") set(isDevSupportEnabled: Boolean): Unit = Unit + + override public val devSettings: DeveloperSettings? + get() = null + + override public val redBoxHandler: RedBoxHandler? + get() = null + + override public fun onNewReactContextCreated(reactContext: ReactContext): Unit = Unit + + override public fun onReactInstanceDestroyed(reactContext: ReactContext): Unit = Unit + + override public val sourceMapUrl: String? + get() = null + + override public val sourceUrl: String? + get() = null + + override public val jSBundleURLForRemoteDebugging: String? + get() = null + + override public val downloadedJSBundleFile: String? + get() = null + + override public fun hasUpToDateJSBundleInCache(): Boolean = false + + override public fun reloadSettings(): Unit = Unit + + override public fun handleReloadJS(): Unit = Unit + + override public fun reloadJSFromServer(bundleURL: String, callback: BundleLoadCallback): Unit = + Unit + + override public fun loadSplitBundleFromServer( + bundlePath: String, + callback: DevSplitBundleCallback + ): Unit = Unit + + override public fun isPackagerRunning(callback: PackagerStatusCallback) { + callback.onPackagerStatusFetched(false) + } + + override public fun downloadBundleResourceFromUrlSync( + resourceURL: String, + outputFile: File? + ): File? = null + + override public val lastErrorTitle: String? + get() = null + + override public val lastErrorStack: Array? + get() = null + + override public val lastErrorType: ErrorType? + get() = null + + override public val lastErrorCookie: Int = 0 + + override public fun registerErrorCustomizer(errorCustomizer: ErrorCustomizer?): Unit = Unit + + override public fun processErrorCustomizers( + errorInfo: Pair>? + ): Pair>? = errorInfo + + override public fun setPackagerLocationCustomizer( + packagerLocationCustomizer: PackagerLocationCustomizer? + ): Unit = Unit + + override public fun handleException(e: Exception) { + defaultJSExceptionHandler.handleException(e) + } + + override public val currentActivity: Activity? + get() = null + + override public fun createSurfaceDelegate(moduleName: String?): SurfaceDelegate? = null + + override public fun openDebugger(): Unit = Unit + + override public fun showPausedInDebuggerOverlay( + message: String, + listener: PausedInDebuggerOverlayCommandListener + ): Unit = Unit + + override public fun hidePausedInDebuggerOverlay(): Unit = Unit + + override public fun setAdditionalOptionForPackager(name: String, value: String): Unit = Unit +}