Query radio capabilities on carrier config changed
Some capabilities are SIM dependent (ie. whether 5G is supported),
so send a request to get the new radio capabilities when the carrier
config changes.
Test: atest FrameworksTelephonyTests
Bug: 169788770
Change-Id: I55ebd0f6b77c9d292273723f72f3f3f6bfe267d6
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
index ec339c0..f64211b 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -2739,6 +2739,8 @@
break;
case EVENT_CARRIER_CONFIG_CHANGED:
+ // Obtain new radio capabilities from the modem, since some are SIM-dependent
+ mCi.getRadioCapability(obtainMessage(EVENT_GET_RADIO_CAPABILITY));
// Only check for the voice radio tech if it not going to be updated by the voice
// registration changes.
if (!mContext.getResources().getBoolean(
diff --git a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
index 562a608..7ad41c2 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
@@ -1375,4 +1375,15 @@
replaceInstance(Phone.class, "mImsPhone", mPhoneUT, mImsPhone);
}
+
+ @Test
+ public void testEventCarrierConfigChanged() {
+ mPhoneUT.mCi = mMockCi;
+ mPhoneUT.sendMessage(mPhoneUT.obtainMessage(Phone.EVENT_CARRIER_CONFIG_CHANGED));
+ processAllMessages();
+
+ ArgumentCaptor<Message> captor = ArgumentCaptor.forClass(Message.class);
+ verify(mMockCi).getRadioCapability(captor.capture());
+ assertEquals(captor.getValue().what, Phone.EVENT_GET_RADIO_CAPABILITY);
+ }
}