public class DevSupportManagerImpl extends java.lang.Object implements DevSupportManager, DevServerHelper.PackagerCommandListener
ReactInstanceDevCommandsHandler
implementation is responsible for instantiating this
instance and for populating with an instance of CatalystInstance
whenever instance
manager recreates it (through #onNewCatalystContextCreated
). Also, instance manager is
responsible for enabling/disabling dev support in case when app is backgrounded or when all the
views has been detached from the instance (through setDevSupportEnabled(boolean)
method).
IMPORTANT: In order for developer support to work correctly it is required that the
manifest of your application contain the following entries:
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Constructor and Description |
---|
DevSupportManagerImpl(android.content.Context applicationContext,
ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
java.lang.String packagerPathForJSBundleName,
boolean enableOnCreate) |
DevSupportManagerImpl(android.content.Context applicationContext,
ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
java.lang.String packagerPathForJSBundleName,
boolean enableOnCreate,
RedBoxHandler redBoxHandler) |
Modifier and Type | Method and Description |
---|---|
void |
addCustomDevOption(java.lang.String optionName,
DevOptionHandler optionHandler)
Add option item to dev settings dialog displayed by this manager.
|
DeveloperSettings |
getDevSettings() |
boolean |
getDevSupportEnabled() |
java.lang.String |
getDownloadedJSBundleFile() |
java.lang.String |
getHeapCaptureUploadUrl() |
java.lang.String |
getJSBundleURLForRemoteDebugging() |
StackTraceHelper.StackFrame[] |
getLastErrorStack() |
java.lang.String |
getLastErrorTitle() |
java.lang.String |
getSourceMapUrl() |
java.lang.String |
getSourceUrl() |
void |
handleException(java.lang.Exception e)
Do something to display or log the exception.
|
void |
handleReloadJS() |
boolean |
hasBundleInAssets(java.lang.String bundleAssetName) |
boolean |
hasUpToDateJSBundleInCache() |
void |
hideRedboxDialog() |
void |
isPackagerRunning(DevServerHelper.PackagerStatusCallback callback) |
void |
onNewReactContextCreated(ReactContext reactContext) |
void |
onPackagerReloadCommand() |
void |
onReactInstanceDestroyed(ReactContext reactContext) |
void |
reloadSettings() |
void |
setDevSupportEnabled(boolean isDevSupportEnabled)
ReactInstanceDevCommandsHandler is responsible for
enabling/disabling dev support when a React view is attached/detached
or when application state changes (e.g. |
void |
showDevOptionsDialog() |
void |
showNewJavaError(java.lang.String message,
java.lang.Throwable e) |
void |
showNewJSError(java.lang.String message,
ReadableArray details,
int errorCookie) |
void |
updateJSError(java.lang.String message,
ReadableArray details,
int errorCookie) |
public DevSupportManagerImpl(android.content.Context applicationContext, ReactInstanceDevCommandsHandler reactInstanceCommandsHandler, @Nullable java.lang.String packagerPathForJSBundleName, boolean enableOnCreate)
public DevSupportManagerImpl(android.content.Context applicationContext, ReactInstanceDevCommandsHandler reactInstanceCommandsHandler, @Nullable java.lang.String packagerPathForJSBundleName, boolean enableOnCreate, @Nullable RedBoxHandler redBoxHandler)
public void handleException(java.lang.Exception e)
NativeModuleCallExceptionHandler
handleException
in interface NativeModuleCallExceptionHandler
public void showNewJavaError(java.lang.String message, java.lang.Throwable e)
showNewJavaError
in interface DevSupportManager
public void addCustomDevOption(java.lang.String optionName, DevOptionHandler optionHandler)
addCustomDevOption
in interface DevSupportManager
public void showNewJSError(java.lang.String message, ReadableArray details, int errorCookie)
showNewJSError
in interface DevSupportManager
public void updateJSError(java.lang.String message, ReadableArray details, int errorCookie)
updateJSError
in interface DevSupportManager
public void hideRedboxDialog()
hideRedboxDialog
in interface DevSupportManager
public void showDevOptionsDialog()
showDevOptionsDialog
in interface DevSupportManager
public void setDevSupportEnabled(boolean isDevSupportEnabled)
ReactInstanceDevCommandsHandler
is responsible for
enabling/disabling dev support when a React view is attached/detached
or when application state changes (e.g. the application is backgrounded).setDevSupportEnabled
in interface DevSupportManager
public boolean getDevSupportEnabled()
getDevSupportEnabled
in interface DevSupportManager
public DeveloperSettings getDevSettings()
getDevSettings
in interface DevSupportManager
public void onNewReactContextCreated(ReactContext reactContext)
onNewReactContextCreated
in interface DevSupportManager
public void onReactInstanceDestroyed(ReactContext reactContext)
onReactInstanceDestroyed
in interface DevSupportManager
public java.lang.String getSourceMapUrl()
getSourceMapUrl
in interface DevSupportManager
public java.lang.String getSourceUrl()
getSourceUrl
in interface DevSupportManager
public java.lang.String getJSBundleURLForRemoteDebugging()
getJSBundleURLForRemoteDebugging
in interface DevSupportManager
public java.lang.String getDownloadedJSBundleFile()
getDownloadedJSBundleFile
in interface DevSupportManager
public java.lang.String getHeapCaptureUploadUrl()
getHeapCaptureUploadUrl
in interface DevSupportManager
public boolean hasUpToDateJSBundleInCache()
hasUpToDateJSBundleInCache
in interface DevSupportManager
true
if ReactInstanceManager
should use downloaded JS bundle file
instead of using JS file from assets. This may happen when app has not been updated since
the last time we fetched the bundle.public boolean hasBundleInAssets(java.lang.String bundleAssetName)
true
if JS bundle exists, in that case
ReactInstanceManager
should use that file from assets instead of downloading bundle
from dev serverpublic void reloadSettings()
reloadSettings
in interface DevSupportManager
public void handleReloadJS()
handleReloadJS
in interface DevSupportManager
public void isPackagerRunning(DevServerHelper.PackagerStatusCallback callback)
isPackagerRunning
in interface DevSupportManager
@Nullable public java.lang.String getLastErrorTitle()
getLastErrorTitle
in interface DevSupportManager
@Nullable public StackTraceHelper.StackFrame[] getLastErrorStack()
getLastErrorStack
in interface DevSupportManager
public void onPackagerReloadCommand()
onPackagerReloadCommand
in interface DevServerHelper.PackagerCommandListener