mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Kotlinify DevSupportManager interface (#44056)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44056 ## Changelog: [Internal] - Was looking into how devsupport is exactly implemented on different platforms (in the context of doing it for a new platform) and figured I may just well convert this to Koltin in the process (helped to understand inner working details as well). Reviewed By: christophpurrer Differential Revision: D56058560 fbshipit-source-id: 1e2ffcec480c5fa3fd8b6494c29a0db6f94aec78
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b15d438498
commit
214a1e0722
-134
@@ -1,134 +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.interfaces;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.util.Pair;
|
||||
import android.view.View;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.bridge.JSExceptionHandler;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.common.SurfaceDelegate;
|
||||
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Interface for accessing and interacting with development features. In dev mode, use the
|
||||
* implementation {@link BridgeDevSupportManager}. In production mode, use the dummy implementation
|
||||
* {@link ReleaseDevSupportManager}.
|
||||
*/
|
||||
public interface DevSupportManager extends JSExceptionHandler {
|
||||
|
||||
void showNewJavaError(String message, Throwable e);
|
||||
|
||||
void addCustomDevOption(String optionName, DevOptionHandler optionHandler);
|
||||
|
||||
@Nullable
|
||||
View createRootView(String appKey);
|
||||
|
||||
void destroyRootView(View rootView);
|
||||
|
||||
void showNewJSError(String message, ReadableArray details, int errorCookie);
|
||||
|
||||
void updateJSError(final String message, final ReadableArray details, final int errorCookie);
|
||||
|
||||
void hideRedboxDialog();
|
||||
|
||||
void showDevOptionsDialog();
|
||||
|
||||
void setDevSupportEnabled(boolean isDevSupportEnabled);
|
||||
|
||||
void startInspector();
|
||||
|
||||
void stopInspector();
|
||||
|
||||
boolean getDevSupportEnabled();
|
||||
|
||||
DeveloperSettings getDevSettings();
|
||||
|
||||
RedBoxHandler getRedBoxHandler();
|
||||
|
||||
void onNewReactContextCreated(ReactContext reactContext);
|
||||
|
||||
void onReactInstanceDestroyed(ReactContext reactContext);
|
||||
|
||||
String getSourceMapUrl();
|
||||
|
||||
String getSourceUrl();
|
||||
|
||||
String getJSBundleURLForRemoteDebugging();
|
||||
|
||||
String getDownloadedJSBundleFile();
|
||||
|
||||
boolean hasUpToDateJSBundleInCache();
|
||||
|
||||
void reloadSettings();
|
||||
|
||||
void handleReloadJS();
|
||||
|
||||
void reloadJSFromServer(final String bundleURL);
|
||||
|
||||
void reloadJSFromServer(final String bundleURL, final BundleLoadCallback callback);
|
||||
|
||||
void loadSplitBundleFromServer(String bundlePath, DevSplitBundleCallback callback);
|
||||
|
||||
void isPackagerRunning(PackagerStatusCallback callback);
|
||||
|
||||
void setHotModuleReplacementEnabled(final boolean isHotModuleReplacementEnabled);
|
||||
|
||||
void setRemoteJSDebugEnabled(final boolean isRemoteJSDebugEnabled);
|
||||
|
||||
void setFpsDebugEnabled(final boolean isFpsDebugEnabled);
|
||||
|
||||
void toggleElementInspector();
|
||||
|
||||
@Nullable
|
||||
File downloadBundleResourceFromUrlSync(final String resourceURL, final File outputFile);
|
||||
|
||||
@Nullable
|
||||
String getLastErrorTitle();
|
||||
|
||||
@Nullable
|
||||
StackFrame[] getLastErrorStack();
|
||||
|
||||
@Nullable
|
||||
ErrorType getLastErrorType();
|
||||
|
||||
int getLastErrorCookie();
|
||||
|
||||
void registerErrorCustomizer(ErrorCustomizer errorCustomizer);
|
||||
|
||||
Pair<String, StackFrame[]> processErrorCustomizers(Pair<String, StackFrame[]> errorInfo);
|
||||
|
||||
/**
|
||||
* The PackagerLocationCustomizer allows you to have a dynamic packager location that is
|
||||
* determined right before loading the packager. Your customizer must call |callback|, as loading
|
||||
* will be blocked waiting for it to resolve.
|
||||
*/
|
||||
interface PackagerLocationCustomizer {
|
||||
void run(Runnable callback);
|
||||
}
|
||||
|
||||
void setPackagerLocationCustomizer(PackagerLocationCustomizer packagerLocationCustomizer);
|
||||
|
||||
@Nullable
|
||||
Activity getCurrentActivity();
|
||||
|
||||
/**
|
||||
* Create the surface delegate that the provided module should use to interact with
|
||||
*
|
||||
* @param moduleName the module name that helps decide which surface it should interact with
|
||||
* @return a {@link SurfaceDelegate} instance
|
||||
*/
|
||||
@Nullable
|
||||
SurfaceDelegate createSurfaceDelegate(String moduleName);
|
||||
|
||||
/** Attempt to open the JS debugger on the host machine. */
|
||||
void openDebugger();
|
||||
}
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* 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.interfaces
|
||||
|
||||
import android.app.Activity
|
||||
import android.util.Pair
|
||||
import android.view.View
|
||||
import com.facebook.react.bridge.JSExceptionHandler
|
||||
import com.facebook.react.bridge.ReactContext
|
||||
import com.facebook.react.bridge.ReadableArray
|
||||
import com.facebook.react.common.SurfaceDelegate
|
||||
import com.facebook.react.modules.debug.interfaces.DeveloperSettings
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* Interface for accessing and interacting with development features. In dev mode, use the
|
||||
* implementation [BridgeDevSupportManager]. In production mode, use the dummy implementation
|
||||
* [ReleaseDevSupportManager].
|
||||
*/
|
||||
public interface DevSupportManager : JSExceptionHandler {
|
||||
|
||||
public val devSettings: DeveloperSettings?
|
||||
public val redBoxHandler: RedBoxHandler?
|
||||
public val sourceMapUrl: String?
|
||||
public val sourceUrl: String?
|
||||
public val jSBundleURLForRemoteDebugging: String?
|
||||
public val downloadedJSBundleFile: String?
|
||||
public val lastErrorTitle: String?
|
||||
public val lastErrorStack: Array<StackFrame>?
|
||||
public val lastErrorType: ErrorType?
|
||||
public val lastErrorCookie: Int
|
||||
public val currentActivity: Activity?
|
||||
|
||||
public var devSupportEnabled: Boolean
|
||||
|
||||
public fun showNewJavaError(message: String?, e: Throwable?)
|
||||
|
||||
public fun addCustomDevOption(optionName: String?, optionHandler: DevOptionHandler?)
|
||||
|
||||
public fun createRootView(appKey: String?): View?
|
||||
|
||||
public fun destroyRootView(rootView: View?)
|
||||
|
||||
public fun showNewJSError(message: String?, details: ReadableArray?, errorCookie: Int)
|
||||
|
||||
public fun updateJSError(message: String?, details: ReadableArray?, errorCookie: Int)
|
||||
|
||||
public fun hideRedboxDialog()
|
||||
|
||||
public fun showDevOptionsDialog()
|
||||
|
||||
public fun startInspector()
|
||||
|
||||
public fun stopInspector()
|
||||
|
||||
public fun onNewReactContextCreated(reactContext: ReactContext?)
|
||||
|
||||
public fun onReactInstanceDestroyed(reactContext: ReactContext?)
|
||||
|
||||
public fun hasUpToDateJSBundleInCache(): Boolean
|
||||
|
||||
public fun reloadSettings()
|
||||
|
||||
public fun handleReloadJS()
|
||||
|
||||
public fun reloadJSFromServer(bundleURL: String)
|
||||
|
||||
public fun reloadJSFromServer(bundleURL: String, callback: BundleLoadCallback)
|
||||
|
||||
public fun loadSplitBundleFromServer(bundlePath: String, callback: DevSplitBundleCallback)
|
||||
|
||||
public fun isPackagerRunning(callback: PackagerStatusCallback)
|
||||
|
||||
public fun setHotModuleReplacementEnabled(isHotModuleReplacementEnabled: Boolean)
|
||||
|
||||
public fun setRemoteJSDebugEnabled(isRemoteJSDebugEnabled: Boolean)
|
||||
|
||||
public fun setFpsDebugEnabled(isFpsDebugEnabled: Boolean)
|
||||
|
||||
public fun toggleElementInspector()
|
||||
|
||||
public fun downloadBundleResourceFromUrlSync(resourceURL: String, outputFile: File?): File?
|
||||
|
||||
public fun registerErrorCustomizer(errorCustomizer: ErrorCustomizer?)
|
||||
|
||||
public fun processErrorCustomizers(
|
||||
errorInfo: Pair<String, Array<StackFrame>>?
|
||||
): Pair<String, Array<StackFrame>>?
|
||||
|
||||
public fun setPackagerLocationCustomizer(packagerLocationCustomizer: PackagerLocationCustomizer?)
|
||||
|
||||
/**
|
||||
* Create the surface delegate that the provided module should use to interact with
|
||||
*
|
||||
* @param moduleName the module name that helps decide which surface it should interact with
|
||||
* @return a [SurfaceDelegate] instance
|
||||
*/
|
||||
public fun createSurfaceDelegate(moduleName: String?): SurfaceDelegate?
|
||||
|
||||
/** Attempt to open the JS debugger on the host machine. */
|
||||
public fun openDebugger()
|
||||
|
||||
/**
|
||||
* The PackagerLocationCustomizer allows you to have a dynamic packager location that is
|
||||
* determined right before loading the packager. Your customizer must call |callback|, as loading
|
||||
* will be blocked waiting for it to resolve.
|
||||
*/
|
||||
public fun interface PackagerLocationCustomizer {
|
||||
public fun run(callback: Runnable?)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user