Merge "Settings: Fix exception in about phone during SIM swap"
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index 370bdfb..9858ad2 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -152,6 +152,7 @@
private final Context mContext;
private boolean mShowLatestAreaInfo;
+ private boolean mIsRegisteredListener = false;
private final BroadcastReceiver mAreaInfoReceiver = new BroadcastReceiver() {
@Override
@@ -282,11 +283,22 @@
mContext.registerReceiver(mAreaInfoReceiver,
new IntentFilter(CellBroadcastIntents.ACTION_AREA_INFO_UPDATED));
}
+
+ mIsRegisteredListener = true;
}
@Override
public void onPause() {
if (mSubscriptionInfo == null) {
+ if (mIsRegisteredListener) {
+ mSubscriptionManager.removeOnSubscriptionsChangedListener(
+ mOnSubscriptionsChangedListener);
+ mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+ if (mShowLatestAreaInfo) {
+ mContext.unregisterReceiver(mAreaInfoReceiver);
+ }
+ mIsRegisteredListener = false;
+ }
return;
}