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
(cherry picked from commit 70bf76a436
)
Merged-In: I9a5964400a63053e362632944b9e7aa8ec1bbea8
This commit is contained in:
@@ -84,10 +84,11 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements
|
|||||||
private void updateDialog(AlertDialog dialog) {
|
private void updateDialog(AlertDialog dialog) {
|
||||||
Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
|
Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
|
||||||
|
|
||||||
final SubscriptionInfo info = getPreferredSubscription();
|
|
||||||
if (mWasDismissed) {
|
if (mWasDismissed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final SubscriptionInfo info = getPreferredSubscription();
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
dismiss();
|
dismiss();
|
||||||
return;
|
return;
|
||||||
|
@@ -83,6 +83,12 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment imple
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dismiss() {
|
||||||
|
mChangeListener.stop();
|
||||||
|
super.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
public abstract void updateDialog();
|
public abstract void updateDialog();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -128,12 +128,13 @@ public class SimListDialogFragment extends SimDialogFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void updateDialog() {
|
public void updateDialog() {
|
||||||
Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
|
Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
|
||||||
|
if (mWasDismissed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
List<SubscriptionInfo> currentSubscriptions = getCurrentSubscriptions();
|
List<SubscriptionInfo> currentSubscriptions = getCurrentSubscriptions();
|
||||||
if (currentSubscriptions == null) {
|
if (currentSubscriptions == null) {
|
||||||
if (!mWasDismissed) {
|
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME);
|
boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME);
|
||||||
|
Reference in New Issue
Block a user