From 2499aa4b81a83baccd8b285e8646a830201de8b8 Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Thu, 5 Dec 2019 11:38:15 -0800 Subject: [PATCH] Create new Carrier configuration for separate MMTEL/RCS features Bug: 111305845 Test: atest FrameworksTelephonyTests; atest CtsTelephonyTestCases Merged-In: Ia16f82b9cfb9e873d2c26850dfbfd451638ad30c Change-Id: Ia16f82b9cfb9e873d2c26850dfbfd451638ad30c --- api/current.txt | 4 ++- core/res/res/values/config.xml | 4 --- core/res/res/values/symbols.xml | 1 - .../telephony/CarrierConfigManager.java | 25 ++++++++++++++++++- .../internal/telephony/ITelephony.aidl | 5 ++-- 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/api/current.txt b/api/current.txt index bc0ea6d229492..446a14e757889 100644 --- a/api/current.txt +++ b/api/current.txt @@ -44191,7 +44191,9 @@ package android.telephony { field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING = "ci_action_on_sys_update_extra_string"; field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING = "ci_action_on_sys_update_extra_val_string"; field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING = "ci_action_on_sys_update_intent_string"; - field public static final String KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING = "config_ims_package_override_string"; + field public static final String KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING = "config_ims_mmtel_package_override_string"; + field @Deprecated public static final String KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING = "config_ims_package_override_string"; + field public static final String KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING = "config_ims_rcs_package_override_string"; field public static final String KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING = "config_plans_package_override_string"; field public static final String KEY_CONFIG_TELEPHONY_USE_OWN_NUMBER_FOR_VOICEMAIL_BOOL = "config_telephony_use_own_number_for_voicemail_bool"; field public static final String KEY_CSP_ENABLED_BOOL = "csp_enabled_bool"; diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 4b5840e691037..b516c41f3fb62 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -3020,10 +3020,6 @@ false - - - diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 04b86a8fee0f5..5cd5c8c930fd4 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -295,7 +295,6 @@ - diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 2a81de5f2d8d2..264044e27bc90 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -419,11 +419,32 @@ public class CarrierConfigManager { KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY = "gsm_nonroaming_networks_string_array"; /** - * Override the device's configuration for the ImsService to use for this SIM card. + * The package name containing the ImsService that will be bound to the telephony framework to + * support both IMS MMTEL and RCS feature functionality instead of the device default + * ImsService for this subscription. + * @deprecated Use {@link #KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING} and + * {@link #KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING} instead to configure these values + * separately. If any of those values are not empty, they will override this value. */ public static final String KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING = "config_ims_package_override_string"; + /** + * The package name containing the ImsService that will be bound to the telephony framework to + * support IMS MMTEL feature functionality instead of the device default ImsService for this + * subscription. + */ + public static final String KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING = + "config_ims_mmtel_package_override_string"; + + /** + * The package name containing the ImsService that will be bound to the telephony framework to + * support IMS RCS feature functionality instead of the device default ImsService for this + * subscription. + */ + public static final String KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING = + "config_ims_rcs_package_override_string"; + /** * Override the package that will manage {@link SubscriptionPlan} * information instead of the {@link CarrierService} that defines this @@ -3503,6 +3524,8 @@ public class CarrierConfigManager { sDefaults.putStringArray(KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putString(KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING, null); + sDefaults.putString(KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING, null); + sDefaults.putString(KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING, null); sDefaults.putStringArray(KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_DIAL_STRING_REPLACE_STRING_ARRAY, null); diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 3264c751c90d5..feb1368e7d47d 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -858,12 +858,13 @@ interface ITelephony { /** * @return true if the ImsService to bind to for the slot id specified was set, false otherwise. */ - boolean setImsService(int slotId, boolean isCarrierImsService, String packageName); + boolean setBoundImsServiceOverride(int slotIndex, boolean isCarrierService, + in int[] featureTypes, in String packageName); /** * @return the package name of the carrier/device ImsService associated with this slot. */ - String getImsService(int slotId, boolean isCarrierImsService); + String getBoundImsServicePackage(int slotIndex, boolean isCarrierImsService, int featureType); /** * Get the MmTelFeature state attached to this subscription id.