xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java (#45723)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45723

Changelog: [Internal]

Reviewed By: strulovich

Differential Revision: D60254778

fbshipit-source-id: 094d53106c37d610b240d7a30c8b2f8bb5bbc2dc
This commit is contained in:
Andrew Datsenko
2024-07-29 06:34:25 -07:00
committed by Facebook GitHub Bot
parent cb49dfe325
commit c6f89c300d
2 changed files with 168 additions and 223 deletions
@@ -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<String, StackFrame[]> processErrorCustomizers(
@Nullable Pair<String, StackFrame[]> 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) {}
}
@@ -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<StackFrame>?
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<String, Array<StackFrame>>?
): Pair<String, Array<StackFrame>>? = 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
}