From f51c917af3883e14efbbe44579ebe6f4fd4d756c Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Mon, 9 Dec 2019 16:09:57 -0800 Subject: [PATCH] Add CarrierConfig for roaming PLMNS that will need emer DDS switch When roaming, we assume that the roaming operator will support control plane fallback for emergency SUPL. For roaming operators that we know do not support control plane fallback, we must perform a DDS switch before dialing an emergency number on that operator. Bug: 144383368 Test: atest TeleServiceTests; manual Merged-In: I4a033f89610fd409ea81c40230938720ca76541c Change-Id: I4a033f89610fd409ea81c40230938720ca76541c --- .../android/telephony/CarrierConfigManager.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 78ba5b0fe8e6f..ec1c7ec4838d6 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -2975,7 +2975,6 @@ public class CarrierConfigManager { /** * Location information during (and after) an emergency call is only provided over control * plane signaling from the network. - * @hide */ public static final int SUPL_EMERGENCY_MODE_TYPE_CP_ONLY = 0; @@ -2983,7 +2982,6 @@ public class CarrierConfigManager { * Location information during (and after) an emergency call is provided over the data * plane and serviced by the framework GNSS service, but if it fails, the carrier also * supports control plane backup signaling. - * @hide */ public static final int SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK = 1; @@ -2991,7 +2989,6 @@ public class CarrierConfigManager { * Location information during (and after) an emergency call is provided over the data plane * and serviced by the framework GNSS service only. There is no backup signalling over the * control plane if it fails. - * @hide */ public static final int SUPL_EMERGENCY_MODE_TYPE_DP_ONLY = 2; @@ -3099,11 +3096,21 @@ public class CarrierConfigManager { * {@link #SUPL_EMERGENCY_MODE_TYPE_CP_ONLY}. *

* The default value for this configuration is {@link #SUPL_EMERGENCY_MODE_TYPE_CP_ONLY}. - * @hide */ public static final String KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT = KEY_PREFIX + "es_supl_control_plane_support_int"; + /** + * A list of roaming PLMNs where SUPL ES mode does not support a control-plane mechanism to + * get a user's location in the event that data plane SUPL fails or is otherwise + * unavailable. + *

+ * A string array of PLMNs that do not support a control-plane mechanism for getting a + * user's location for SUPL ES. + */ + public static final String KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY = + KEY_PREFIX + "es_supl_data_plane_only_roaming_plmn_string_array"; + private static PersistableBundle getDefaults() { PersistableBundle defaults = new PersistableBundle(); defaults.putBoolean(KEY_PERSIST_LPP_MODE_BOOL, true); @@ -3120,6 +3127,7 @@ public class CarrierConfigManager { defaults.putString(KEY_NFW_PROXY_APPS_STRING, ""); defaults.putInt(KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT, SUPL_EMERGENCY_MODE_TYPE_CP_ONLY); + defaults.putStringArray(KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY, null); return defaults; } }