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;
}
}
diff --git a/tests/src/com/android/phone/ImsStateCallbackControllerTest.java b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
index e4cdc6e..cbd6ceb 100644
--- a/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
+++ b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
@@ -726,7 +726,7 @@
verify(mCallback2, times(2)).onUnavailable(anyInt());
verify(mCallback3, times(2)).onUnavailable(anyInt());
- mMmTelConnectorListenerSlot1.getValue().connectionReady(null, SLOT_0_SUB_ID);
+ mMmTelConnectorListenerSlot1.getValue().connectionReady(null, SLOT_1_SUB_ID);
processAllMessages();
verify(mCallback0, times(1)).onAvailable();
verify(mCallback1, times(1)).onAvailable();
@@ -737,7 +737,7 @@
verify(mCallback2, times(2)).onUnavailable(anyInt());
verify(mCallback3, times(2)).onUnavailable(anyInt());
- mRcsConnectorListenerSlot1.getValue().connectionReady(null, SLOT_0_SUB_ID);
+ mRcsConnectorListenerSlot1.getValue().connectionReady(null, SLOT_1_SUB_ID);
processAllMessages();
verify(mCallback0, times(1)).onAvailable();
verify(mCallback1, times(1)).onAvailable();