Merge "Update IMS carrier configs"
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index ab039df..105ff1d 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -1440,6 +1440,12 @@
if (!mConfigUpdated || force) {
try {
+ PersistableBundle imsCarrierConfigs =
+ mConfigManager.getConfigByComponentForSubId(
+ CarrierConfigManager.Ims.KEY_PREFIX, getSubId());
+
+ updateImsCarrierConfigs(imsCarrierConfigs);
+
// Note: currently the order of updates is set to produce different order of
// changeEnabledCapabilities() function calls from setAdvanced4GMode(). This is done
// to differentiate this code path from vendor code perspective.
@@ -2813,4 +2819,20 @@
return SubscriptionManager.isValidSubscriptionId(subId) &&
subId != SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
}
+
+ private void updateImsCarrierConfigs(PersistableBundle configs) throws ImsException {
+ checkAndThrowExceptionIfServiceUnavailable();
+
+ IImsConfig config = mMmTelFeatureConnection.getConfigInterface();
+ if (config == null) {
+ throw new ImsException("getConfigInterface()",
+ ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
+ }
+ try {
+ config.updateImsCarrierConfigs(configs);
+ } catch (RemoteException e) {
+ throw new ImsException("updateImsCarrierConfigs()", e,
+ ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
+ }
+ }
}