Fix register multiple PhoneStateListeners.
To avoid multiple PhoneStateListeners are registered, when user changes
the tab between SIMs, unregister the previous listener.
Change-Id: I99cf36a2c25bfbb74322b55efc6d751ea96810e5
diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java
index 83043c7..2a53719 100644
--- a/src/com/android/settings/deviceinfo/SimStatus.java
+++ b/src/com/android/settings/deviceinfo/SimStatus.java
@@ -389,6 +389,12 @@
}
mPhone = phone;
+ // To avoid register multiple listeners when user changes the tab.
+ if (mPhoneStateListener != null && mTelephonyManager != null) {
+ mTelephonyManager.listen(mPhoneStateListener,
+ PhoneStateListener.LISTEN_NONE);
+ mPhoneStateListener = null;
+ }
mPhoneStateListener = new PhoneStateListener(mSir.getSubscriptionId()) {
@Override
public void onDataConnectionStateChanged(int state) {