Update IMS MMTEL API impls to include NR tech types
Bug: 179724463
Test: atest TeleServiceTest
Merged-In: Id6c8b034d48ea385df2fc3e293fd1e539c425b95
Change-Id: Id6c8b034d48ea385df2fc3e293fd1e539c425b95
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 68bc19c..2f22d63 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -4345,8 +4345,8 @@
@Override
public void setImsProvisioningStatusForCapability(int subId, int capability, int tech,
boolean isProvisioned) {
- if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
- && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
+ if (tech < ImsRegistrationImplBase.REGISTRATION_TECH_LTE
+ || tech > ImsRegistrationImplBase.REGISTRATION_TECH_NR) {
throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
}
checkModifyPhoneStatePermission(subId, "setImsProvisioningStatusForCapability");
@@ -4356,6 +4356,12 @@
if (!isImsProvisioningRequired(subId, capability, true)) {
return;
}
+ if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE
+ && tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN) {
+ loge("setImsProvisioningStatusForCapability: called for technology that does "
+ + "not support provisioning - " + tech);
+ return;
+ }
// this capability requires provisioning, route to the correct API.
ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
@@ -4383,7 +4389,7 @@
}
cacheMmTelCapabilityProvisioning(subId, capability, tech, isProvisioned);
try {
- ims.changeMmTelCapability(capability, tech, isProvisioned);
+ ims.changeMmTelCapability(isProvisioned, capability, tech);
} catch (com.android.ims.ImsException e) {
loge("setImsProvisioningStatusForCapability: couldn't change UT capability"
+ ", Exception" + e.getMessage());
@@ -4404,8 +4410,8 @@
@Override
public boolean getImsProvisioningStatusForCapability(int subId, int capability, int tech) {
- if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
- && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
+ if (tech < ImsRegistrationImplBase.REGISTRATION_TECH_LTE
+ || tech > ImsRegistrationImplBase.REGISTRATION_TECH_NR) {
throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
}
enforceReadPrivilegedPermission("getProvisioningStatusForCapability");
@@ -4416,6 +4422,13 @@
return true;
}
+ if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE
+ && tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN) {
+ loge("getImsProvisioningStatusForCapability: called for technology that does "
+ + "not support provisioning - " + tech);
+ return true;
+ }
+
ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
switch (capability) {
case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE: {
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 3f4ae58..302fc47 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -1322,7 +1322,7 @@
new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
boolean isImsRegistered = mPhone.isImsRegistered();
- boolean availableVolte = mPhone.isVolteEnabled();
+ boolean availableVolte = mPhone.isVoiceOverCellularImsEnabled();
boolean availableWfc = mPhone.isWifiCallingEnabled();
boolean availableVt = mPhone.isVideoEnabled();
boolean availableUt = mPhone.isUtEnabled();
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index a1bea2a..581a23a 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1598,7 +1598,7 @@
Phone imsPhone = phone.getImsPhone();
return imsPhone != null
- && (imsPhone.isVolteEnabled() || imsPhone.isWifiCallingEnabled())
+ && (imsPhone.isVoiceOverCellularImsEnabled() || imsPhone.isWifiCallingEnabled())
&& (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE);
}