Fix the settings crash when SimDialogActivity is null

The PreferredSimDialogFragment did updateDialog after SimDialogActivity
was finished. It caused the settings crash. This is similar to b/184899699

Bug: 220803944
Test: build pass
Change-Id: I9a5964400a63053e362632944b9e7aa8ec1bbea8
This commit is contained in:
SongFerngWang
2022-02-24 12:55:53 +08:00
parent d5e3d2e1fe
commit 70bf76a436
3 changed files with 12 additions and 4 deletions

View File

@@ -84,10 +84,11 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements
private void updateDialog(AlertDialog dialog) {
Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
final SubscriptionInfo info = getPreferredSubscription();
if (mWasDismissed) {
return;
}
final SubscriptionInfo info = getPreferredSubscription();
if (info == null) {
dismiss();
return;

View File

@@ -83,6 +83,12 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment imple
}
}
@Override
public void dismiss() {
mChangeListener.stop();
super.dismiss();
}
public abstract void updateDialog();
@Override

View File

@@ -128,12 +128,13 @@ public class SimListDialogFragment extends SimDialogFragment {
@Override
public void updateDialog() {
Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
if (mWasDismissed) {
return;
}
List<SubscriptionInfo> currentSubscriptions = getCurrentSubscriptions();
if (currentSubscriptions == null) {
if (!mWasDismissed) {
dismiss();
}
dismiss();
return;
}
boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME);