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) {