Merge "isRcsVolteSingleRegistrationCapable does not check provisioned config"
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index e1affa9..d7cdbc2 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -9767,9 +9767,13 @@
try {
RcsProvisioningMonitor rpm = RcsProvisioningMonitor.getInstance();
if (rpm != null) {
- return rpm.isRcsVolteSingleRegistrationEnabled(subId);
+ Boolean isCapable = rpm.isRcsVolteSingleRegistrationEnabled(subId);
+ if (isCapable != null) {
+ return isCapable;
+ }
}
- return false;
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE,
+ "service is temporarily unavailable.");
} finally {
Binder.restoreCallingIdentity(identity);
}
diff --git a/src/com/android/phone/RcsProvisioningMonitor.java b/src/com/android/phone/RcsProvisioningMonitor.java
index 9e30728..8f4cd86 100644
--- a/src/com/android/phone/RcsProvisioningMonitor.java
+++ b/src/com/android/phone/RcsProvisioningMonitor.java
@@ -537,19 +537,12 @@
/**
* Returns whether Rcs Volte single registration is enabled for the sub.
*/
- public boolean isRcsVolteSingleRegistrationEnabled(int subId) {
+ public Boolean isRcsVolteSingleRegistrationEnabled(int subId) {
if (mRcsProvisioningInfos.containsKey(subId)) {
- if (mRcsProvisioningInfos.get(subId).getSingleRegistrationCapability()
- == ProvisioningManager.STATUS_CAPABLE) {
- try {
- RcsConfig rcsConfig = new RcsConfig(getConfig(subId));
- return rcsConfig.isRcsVolteSingleRegistrationSupported();
- } catch (IllegalArgumentException e) {
- logd("fail to get rcs config for sub:" + subId);
- }
- }
+ return mRcsProvisioningInfos.get(subId).getSingleRegistrationCapability()
+ == ProvisioningManager.STATUS_CAPABLE;
}
- return false;
+ return null;
}
/**
diff --git a/tests/src/com/android/phone/RcsProvisioningMonitorTest.java b/tests/src/com/android/phone/RcsProvisioningMonitorTest.java
index 57e01f0..85e190e 100644
--- a/tests/src/com/android/phone/RcsProvisioningMonitorTest.java
+++ b/tests/src/com/android/phone/RcsProvisioningMonitorTest.java
@@ -512,7 +512,7 @@
mRcsProvisioningMonitor.updateConfig(FAKE_SUB_ID_BASE, null, false);
processAllMessages();
- assertFalse(mRcsProvisioningMonitor.isRcsVolteSingleRegistrationEnabled(FAKE_SUB_ID_BASE));
+ assertTrue(mRcsProvisioningMonitor.isRcsVolteSingleRegistrationEnabled(FAKE_SUB_ID_BASE));
mRcsProvisioningMonitor.updateConfig(FAKE_SUB_ID_BASE, CONFIG_DEFAULT.getBytes(), false);
processAllMessages();
@@ -521,7 +521,10 @@
mRcsProvisioningMonitor.updateConfig(FAKE_SUB_ID_BASE,
CONFIG_SINGLE_REGISTRATION_DISABLED.getBytes(), false);
processAllMessages();
- assertFalse(mRcsProvisioningMonitor.isRcsVolteSingleRegistrationEnabled(FAKE_SUB_ID_BASE));
+ assertTrue(mRcsProvisioningMonitor.isRcsVolteSingleRegistrationEnabled(FAKE_SUB_ID_BASE));
+
+ assertNull(mRcsProvisioningMonitor.isRcsVolteSingleRegistrationEnabled(
+ FAKE_SUB_ID_BASE + 1));
}
@Test