Fix currentActivity being null when launching Redbox

Summary:
Try to reuse currentActivity when the new context from "mReactInstanceDevHelper.getCurrentActivity()" is null to fix  "Unable to launch redbox because react activity is not available..."

Changelog:
[Android][Fixed] - Fix currentActivity being null when launching Redbox

Reviewed By: philIip

Differential Revision: D30942434

fbshipit-source-id: faf03390adc545376f3cec223eac5a16bf8233ea
This commit is contained in:
Lulu Wu 2021-09-20 14:13:06 -07:00 коммит произвёл Facebook GitHub Bot
Родитель c0e04460f5
Коммит f4fdf4b55e
1 изменённых файлов: 14 добавлений и 9 удалений

Просмотреть файл

@ -345,16 +345,21 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
@Override
public void run() {
Activity context = mReactInstanceDevHelper.getCurrentActivity();
if (mRedBoxDialog == null || context != currentActivity) {
if (context == null || context.isFinishing()) {
FLog.e(
ReactConstants.TAG,
"Unable to launch redbox because react activity "
+ "is not available, here is the error that redbox would've displayed: "
+ message);
return;
}
if (context != null && !context.isFinishing() && currentActivity != context) {
currentActivity = context;
// Create a new RedBox when currentActivity get updated
mRedBoxDialog =
new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler);
}
if (currentActivity == null || currentActivity.isFinishing()) {
FLog.e(
ReactConstants.TAG,
"Unable to launch redbox because react activity "
+ "is not available, here is the error that redbox would've displayed: "
+ message);
return;
}
if (mRedBoxDialog == null) {
mRedBoxDialog =
new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler);
}