From 0bebba7378f5281ed79860942f587b33723d596f Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Wed, 17 Feb 2021 14:08:42 -0800 Subject: [PATCH] Simplified the initial attach APN logic 1. Instead of using the hardcoded order, read the order from configuration. This also allows carriers to specify the allowed types of APN can be used for initial attach. 2. Removed the preferred APN logic. The preferred APN is specifically for the default APN after a successful data setup. It's not related to initial attach. Fix: 169657628 Test: Manual Change-Id: I9fbf4f270726cba1281770db88fec7c1bb62e6db --- .../android/telephony/CarrierConfigManager.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 6d3fa81a856d0..516d9ad1e8478 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -4764,7 +4764,7 @@ public class CarrierConfigManager { public static final String KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL = "store_sim_pin_for_unattended_reboot_bool"; - /** + /** * Determine whether "Enable 2G" toggle can be shown. * * Used to trade privacy/security against potentially reduced carrier coverage for some @@ -4772,6 +4772,16 @@ public class CarrierConfigManager { */ public static final String KEY_HIDE_ENABLE_2G = "hide_enable_2g_bool"; + /** + * Indicates the allowed APN types that can be used for LTE initial attach. The order of APN + * types in the configuration is the order of APN types that will be used for initial attach. + * Empty list indicates that no APN types are allowed for initial attach. + * + * @hide + */ + public static final String KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY = + "allowed_initial_attach_apn_types_string_array"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -5330,6 +5340,8 @@ public class CarrierConfigManager { sDefaults.putInt(KEY_DEFAULT_RTT_MODE_INT, 0); sDefaults.putBoolean(KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL, true); sDefaults.putBoolean(KEY_HIDE_ENABLE_2G, false); + sDefaults.putStringArray(KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY, + new String[]{"ia", "default", "ims", "mms", "dun", "emergency"}); } /**