Supported minimum aggregated bandwidth and roaming for 5G+

1. Added minimum bandwidth support. 5G+ icon is only
   shown when the aggregated bandwidth is above the threshold.
2. Allowed carrier to disable 5G+ while roaming.

Bug: 198831438
Bug: 201455505
Test: atest NetworkTypeControllerTest
Change-Id: I1f40de5ee559a6d703806e74d305267bde295dcc
This commit is contained in:
Jack Yu
2021-10-19 21:21:28 -07:00
parent 5a9ab8d69a
commit 5e7b8533ef

View File

@@ -1873,6 +1873,20 @@ public class CarrierConfigManager {
public static final String KEY_LTE_PLUS_THRESHOLD_BANDWIDTH_KHZ_INT =
"lte_plus_threshold_bandwidth_khz_int";
/**
* The combined channel bandwidth threshold (non-inclusive) in KHz required to display the
* NR advanced (i.e. 5G+) data icon. It is 0 by default, meaning minimum bandwidth check is
* not enabled. Other factors like bands or frequency can also determine whether the NR
* advanced data icon is shown or not.
*
* @see #KEY_ADDITIONAL_NR_ADVANCED_BANDS_INT_ARRAY
* @see #KEY_NR_ADVANCED_CAPABLE_PCO_ID_INT
*
* @hide
*/
public static final String KEY_NR_ADVANCED_THRESHOLD_BANDWIDTH_KHZ_INT =
"nr_advanced_threshold_bandwidth_khz_int";
/**
* The string is used to filter redundant string from PLMN Network Name that's supplied by
* specific carrier.
@@ -3537,6 +3551,17 @@ public class CarrierConfigManager {
public static final String KEY_NR_ADVANCED_CAPABLE_PCO_ID_INT =
"nr_advanced_capable_pco_id_int";
/**
* Enabled NR advanced (i.e. 5G+) icon while roaming. The default value is {@code true}, meaming
* the same NR advanced logic used for home network will be used for roaming network as well.
* Set this to {@code false} will disable NR advanced icon while the device is roaming,
* regardless meeting NR advanced criteria or not.
*
* @hide
*/
public static final String KEY_ENABLE_NR_ADVANCED_WHILE_ROAMING_BOOL =
"enable_nr_advanced_for_roaming_bool";
/**
* This configuration allows the framework to use user data communication to detect Idle state,
* and this is used on the 5G icon.
@@ -5565,6 +5590,7 @@ public class CarrierConfigManager {
sDefaults.putString(KEY_SHOW_CARRIER_DATA_ICON_PATTERN_STRING, "");
sDefaults.putBoolean(KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL, true);
sDefaults.putInt(KEY_LTE_PLUS_THRESHOLD_BANDWIDTH_KHZ_INT, 20000);
sDefaults.putInt(KEY_NR_ADVANCED_THRESHOLD_BANDWIDTH_KHZ_INT, 0);
sDefaults.putIntArray(KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY,
new int[]{CARRIER_NR_AVAILABILITY_NSA, CARRIER_NR_AVAILABILITY_SA});
sDefaults.putBoolean(KEY_LTE_ENABLED_BOOL, true);
@@ -5660,6 +5686,7 @@ public class CarrierConfigManager {
sDefaults.putLong(KEY_5G_WATCHDOG_TIME_MS_LONG, 3600000);
sDefaults.putIntArray(KEY_ADDITIONAL_NR_ADVANCED_BANDS_INT_ARRAY, new int[0]);
sDefaults.putInt(KEY_NR_ADVANCED_CAPABLE_PCO_ID_INT, 0);
sDefaults.putBoolean(KEY_ENABLE_NR_ADVANCED_WHILE_ROAMING_BOOL, true);
sDefaults.putBoolean(KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL, false);
sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_BOOL, false);
sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_MMWAVE_BOOL, false);