Update connectionAvailable in ImsStateCallabackController

The subId need to be propogated all the way
to FeatureConnector.Listener#connectionReady
so that classes can listen to changes in subId directly.

Bug: 213863350
Test: atest
Change-Id: I37dfdf5537d76046f0301a18e365a5f96531efe1
Merged-In: I37dfdf5537d76046f0301a18e365a5f96531efe1
diff --git a/src/com/android/phone/ImsStateCallbackController.java b/src/com/android/phone/ImsStateCallbackController.java
index 4e2407c..a7caab0 100644
--- a/src/com/android/phone/ImsStateCallbackController.java
+++ b/src/com/android/phone/ImsStateCallbackController.java
@@ -293,8 +293,9 @@
 
         @Override
         public void connectionReady(ImsManager manager, int subId) {
-            logd(mLogPrefix + "connectionReady");
+            logd(mLogPrefix + "connectionReady " + subId);
 
+            mSubId = subId;
             mState = STATE_READY;
             mReason = AVAILABLE;
             mHasConfig = true;
@@ -435,8 +436,9 @@
 
         @Override
         public void connectionReady(RcsFeatureManager manager, int subId) {
-            logd(mLogPrefix + "connectionReady");
+            logd(mLogPrefix + "connectionReady " + subId);
 
+            mSubId = subId;
             mState = STATE_READY;
             mReason = AVAILABLE;
             mHasConfig = true;
@@ -834,19 +836,21 @@
 
         if (wrapper.mRequiredFeature == FEATURE_MMTEL) {
             for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
-                MmTelFeatureListener l = mMmTelFeatureListeners.valueAt(i);
-                if (l.mSubId == wrapper.mSubId
-                        && !l.notifyState(wrapper)) {
-                    mWrappers.remove(wrapper.mBinder);
+                if (wrapper.mSubId == getSubId(i)) {
+                    MmTelFeatureListener l = mMmTelFeatureListeners.valueAt(i);
+                    if (!l.notifyState(wrapper)) {
+                        mWrappers.remove(wrapper.mBinder);
+                    }
                     break;
                 }
             }
         } else if (wrapper.mRequiredFeature == FEATURE_RCS) {
             for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
-                RcsFeatureListener l = mRcsFeatureListeners.valueAt(i);
-                if (l.mSubId == wrapper.mSubId
-                        && !l.notifyState(wrapper)) {
-                    mWrappers.remove(wrapper.mBinder);
+                if (wrapper.mSubId == getSubId(i)) {
+                    RcsFeatureListener l = mRcsFeatureListeners.valueAt(i);
+                    if (!l.notifyState(wrapper)) {
+                        mWrappers.remove(wrapper.mBinder);
+                    }
                     break;
                 }
             }