public class DevSupportManagerImpl extends java.lang.Object implements DevSupportManager, DevServerHelper.PackagerCommandListener, DevInternalSettings.Listener
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,
int minNumShakes) |
DevSupportManagerImpl(android.content.Context applicationContext,
ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
java.lang.String packagerPathForJSBundleName,
boolean enableOnCreate,
RedBoxHandler redBoxHandler,
DevBundleDownloadListener devBundleDownloadListener,
int minNumShakes) |
| 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.
|
java.io.File |
downloadBundleResourceFromUrlSync(java.lang.String resourceURL,
java.io.File outputFile) |
DeveloperSettings |
getDevSettings() |
boolean |
getDevSupportEnabled() |
java.lang.String |
getDownloadedJSBundleFile() |
java.lang.String |
getJSBundleURLForRemoteDebugging() |
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(PackagerStatusCallback callback) |
void |
onCaptureHeapCommand(Responder responder) |
void |
onInternalSettingsChanged() |
void |
onNewReactContextCreated(ReactContext reactContext) |
void |
onPackagerDevMenuCommand() |
void |
onPackagerReloadCommand() |
void |
onPokeSamplingProfilerCommand(Responder responder) |
void |
onReactInstanceDestroyed(ReactContext reactContext) |
void |
reloadJSFromServer(java.lang.String bundleURL) |
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 static int JAVA_ERROR_COOKIE
public static int JSEXCEPTION_ERROR_COOKIE
public static java.lang.String JS_BUNDLE_FILE_NAME
public static java.lang.String EXOPACKAGE_LOCATION_FORMAT
public final android.content.Context mApplicationContext
public final ShakeDetector mShakeDetector
public final android.content.BroadcastReceiver mReloadAppBroadcastReceiver
public final DevServerHelper mDevServerHelper
public final java.util.LinkedHashMap<java.lang.String,DevOptionHandler> mCustomDevOptions
public final ReactInstanceDevCommandsHandler mReactInstanceCommandsHandler
@Nullable public final java.lang.String mJSAppBundleName
public final java.io.File mJSBundleTempFile
public final DefaultNativeModuleCallExceptionHandler mDefaultNativeModuleCallExceptionHandler
public final DevLoadingViewController mDevLoadingViewController
@Nullable public com.facebook.react.devsupport.RedBoxDialog mRedBoxDialog
@Nullable public android.app.AlertDialog mDevOptionsDialog
@Nullable public com.facebook.react.devsupport.DebugOverlayController mDebugOverlayController
public boolean mDevLoadingViewVisible
@Nullable public ReactContext mCurrentContext
public DevInternalSettings mDevSettings
public boolean mIsReceiverRegistered
public boolean mIsShakeDetectorStarted
public boolean mIsDevSupportEnabled
@Nullable public RedBoxHandler mRedBoxHandler
@Nullable public java.lang.String mLastErrorTitle
@Nullable public StackFrame[] mLastErrorStack
public int mLastErrorCookie
@Nullable public com.facebook.react.devsupport.DevSupportManagerImpl.ErrorType mLastErrorType
@Nullable public DevBundleDownloadListener mBundleDownloadListener
public DevSupportManagerImpl(android.content.Context applicationContext,
ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
@Nullable
java.lang.String packagerPathForJSBundleName,
boolean enableOnCreate,
int minNumShakes)
public DevSupportManagerImpl(android.content.Context applicationContext,
ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
@Nullable
java.lang.String packagerPathForJSBundleName,
boolean enableOnCreate,
@Nullable
RedBoxHandler redBoxHandler,
@Nullable
DevBundleDownloadListener devBundleDownloadListener,
int minNumShakes)
public void handleException(java.lang.Exception e)
NativeModuleCallExceptionHandlerhandleException in interface NativeModuleCallExceptionHandlerpublic void showNewJavaError(java.lang.String message,
java.lang.Throwable e)
showNewJavaError in interface DevSupportManagerpublic void addCustomDevOption(java.lang.String optionName,
DevOptionHandler optionHandler)
addCustomDevOption in interface DevSupportManagerpublic void showNewJSError(java.lang.String message,
ReadableArray details,
int errorCookie)
showNewJSError in interface DevSupportManagerpublic void updateJSError(java.lang.String message,
ReadableArray details,
int errorCookie)
updateJSError in interface DevSupportManagerpublic void hideRedboxDialog()
hideRedboxDialog in interface DevSupportManagerpublic void showDevOptionsDialog()
showDevOptionsDialog in interface DevSupportManagerpublic 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 DevSupportManagerpublic boolean getDevSupportEnabled()
getDevSupportEnabled in interface DevSupportManagerpublic DeveloperSettings getDevSettings()
getDevSettings in interface DevSupportManagerpublic void onNewReactContextCreated(ReactContext reactContext)
onNewReactContextCreated in interface DevSupportManagerpublic void onReactInstanceDestroyed(ReactContext reactContext)
onReactInstanceDestroyed in interface DevSupportManagerpublic java.lang.String getSourceMapUrl()
getSourceMapUrl in interface DevSupportManagerpublic java.lang.String getSourceUrl()
getSourceUrl in interface DevSupportManagerpublic java.lang.String getJSBundleURLForRemoteDebugging()
getJSBundleURLForRemoteDebugging in interface DevSupportManagerpublic java.lang.String getDownloadedJSBundleFile()
getDownloadedJSBundleFile in interface DevSupportManagerpublic boolean hasUpToDateJSBundleInCache()
hasUpToDateJSBundleInCache in interface DevSupportManagertrue 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 DevSupportManagerpublic void onInternalSettingsChanged()
onInternalSettingsChanged in interface DevInternalSettings.Listenerpublic void handleReloadJS()
handleReloadJS in interface DevSupportManagerpublic void isPackagerRunning(PackagerStatusCallback callback)
isPackagerRunning in interface DevSupportManager@Nullable
public java.io.File downloadBundleResourceFromUrlSync(java.lang.String resourceURL,
java.io.File outputFile)
downloadBundleResourceFromUrlSync in interface DevSupportManager@Nullable public java.lang.String getLastErrorTitle()
getLastErrorTitle in interface DevSupportManager@Nullable public StackFrame[] getLastErrorStack()
getLastErrorStack in interface DevSupportManagerpublic void onPackagerReloadCommand()
onPackagerReloadCommand in interface DevServerHelper.PackagerCommandListenerpublic void onPackagerDevMenuCommand()
onPackagerDevMenuCommand in interface DevServerHelper.PackagerCommandListenerpublic void onCaptureHeapCommand(Responder responder)
onCaptureHeapCommand in interface DevServerHelper.PackagerCommandListenerpublic void onPokeSamplingProfilerCommand(Responder responder)
onPokeSamplingProfilerCommand in interface DevServerHelper.PackagerCommandListenerpublic void reloadJSFromServer(java.lang.String bundleURL)
reloadJSFromServer in interface DevSupportManager