Merge "Make sure the RcsProvisioningInfo removed from mRcsFeatureListeners when it is destroyed" am: 9f90716e49 am: bdbcf267ab am: ef121b8697

Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/1672007

Change-Id: I6c0bd1b4c43b45ae86ae31a78557a820debf0da2
diff --git a/src/com/android/phone/RcsProvisioningMonitor.java b/src/com/android/phone/RcsProvisioningMonitor.java
index 8d975ec..9e30728 100644
--- a/src/com/android/phone/RcsProvisioningMonitor.java
+++ b/src/com/android/phone/RcsProvisioningMonitor.java
@@ -840,10 +840,9 @@
     }
 
     void unregisterRcsFeatureListener(RcsProvisioningInfo info) {
-        int slotId = SubscriptionManager.getSlotIndex(info.getSubId());
-        RcsFeatureListener cb = mRcsFeatureListeners.get(slotId);
-        if (cb != null) {
-            cb.removeRcsProvisioningInfo(info);
+        // make sure the info to be removed in any case, even the slotId changed or invalid.
+        for (int i  = 0; i < mRcsFeatureListeners.size(); i++) {
+            mRcsFeatureListeners.valueAt(i).removeRcsProvisioningInfo(info);
         }
     }