Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c930c575 authored by Sarah Chin's avatar Sarah Chin Committed by Jack Yu
Browse files

Update carrier configs for DataConfigManager

Test: atest DataNetworkControllerTest
Bug: 202183044
Merged-In: I49e61b47a47a8db6ed3e0c8d5fa7e9b353e69edd
Change-Id: I49e61b47a47a8db6ed3e0c8d5fa7e9b353e69edd
parent 7aee3e22
Loading
Loading
Loading
Loading
+40 −13
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import android.telephony.ims.feature.RcsFeature;
import com.android.internal.telephony.ICarrierConfigLoader;
import com.android.telephony.Rlog;

import java.util.List;
import java.util.concurrent.TimeUnit;

/**
@@ -559,9 +560,9 @@ public class CarrierConfigManager {
            KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL = "disable_cdma_activation_code_bool";

    /**
     * List of RIL radio technologies (See {@link ServiceState} {@code RIL_RADIO_TECHNOLOGY_*}
     * constants) which support only a single data connection at a time. Some carriers do not
     * support multiple pdp on UMTS.
     * List of network type constants which support only a single data connection at a time.
     * Some carriers do not support multiple PDP on UMTS.
     * @see TelephonyManager NETWORK_TYPE_*
     */
    public static final String
            KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY = "only_single_dc_allowed_int_array";
@@ -3669,17 +3670,46 @@ public class CarrierConfigManager {
    public static final String KEY_5G_WATCHDOG_TIME_MS_LONG = "5g_watchdog_time_ms_long";

    /**
     * Which NR types are unmetered. A string array containing the following keys:
     * Which network types are unmetered. A string array that can contain network type names from
     * {@link TelephonyManager#getNetworkTypeName(int)} in addition to the following NR keys:
     * NR_NSA - NR NSA is unmetered for sub-6 frequencies
     * NR_NSA_MMWAVE - NR NSA is unmetered for mmwave frequencies
     * NR_SA - NR SA is unmetered for sub-6 frequencies
     * NR_SA_MMWAVE - NR SA is unmetered for mmwave frequencies
     *
     * Note that this config only applies if an unmetered SubscriptionPlan is set via
     * {@link SubscriptionManager#setSubscriptionPlans(int, List)} or an unmetered override is set
     * via {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, int[], long)}
     * or {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, long)}.
     * If neither SubscriptionPlans nor an override are set, then no network types can be unmetered
     * regardless of the value of this config.
     * TODO: remove other unmetered keys and replace with this
     * @hide
     */
    public static final String KEY_UNMETERED_NETWORK_TYPES_STRING_ARRAY =
            "unmetered_network_types_string_array";

    /**
     * Which network types are unmetered when roaming. A string array that can contain network type
     * names from {@link TelephonyManager#getNetworkTypeName(int)} in addition to the following
     * NR keys:
     * NR_NSA - NR NSA is unmetered when roaming for sub-6 frequencies
     * NR_NSA_MMWAVE - NR NSA is unmetered when roaming for mmwave frequencies
     * NR_SA - NR SA is unmetered when roaming for sub-6 frequencies
     * NR_SA_MMWAVE - NR SA is unmetered when roaming for mmwave frequencies
     *
     * Note that this config only applies if an unmetered SubscriptionPlan is set via
     * {@link SubscriptionManager#setSubscriptionPlans(int, List)} or an unmetered override is set
     * via {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, int[], long)}
     * or {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, long)}.
     * If neither SubscriptionPlans nor an override are set, then no network types can be unmetered
     * when roaming regardless of the value of this config.
     * TODO: remove KEY_UNMETERED_NR_NSA_WHEN_ROAMING_BOOL and replace with this
     * @hide
     */
    public static final String KEY_ROAMING_UNMETERED_NETWORK_TYPES_STRING_ARRAY =
            "roaming_unmetered_network_types_string_array";

    /**
     * Whether NR (non-standalone) should be unmetered for all frequencies.
     * If either {@link #KEY_UNMETERED_NR_NSA_MMWAVE_BOOL} or
@@ -5919,14 +5949,9 @@ public class CarrierConfigManager {
        sDefaults.putStringArray(KEY_CARRIER_WLAN_DISALLOWED_APN_TYPES_STRING_ARRAY,
                new String[]{""});
        sDefaults.putIntArray(KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY,
                new int[]{
                    4, /* IS95A */
                    5, /* IS95B */
                    6, /* 1xRTT */
                    7, /* EVDO_0 */
                    8, /* EVDO_A */
                    12 /* EVDO_B */
                });
                new int[] {TelephonyManager.NETWORK_TYPE_CDMA, TelephonyManager.NETWORK_TYPE_1xRTT,
                        TelephonyManager.NETWORK_TYPE_EVDO_0, TelephonyManager.NETWORK_TYPE_EVDO_A,
                        TelephonyManager.NETWORK_TYPE_EVDO_B});
        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);
@@ -6269,7 +6294,9 @@ public class CarrierConfigManager {
        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.putStringArray(KEY_UNMETERED_NETWORK_TYPES_STRING_ARRAY, new String[0]);
        sDefaults.putStringArray(KEY_UNMETERED_NETWORK_TYPES_STRING_ARRAY, new String[] {
                "NR_NSA", "NR_NSA_MMWAVE", "NR_SA", "NR_SA_MMWAVE"});
        sDefaults.putStringArray(KEY_ROAMING_UNMETERED_NETWORK_TYPES_STRING_ARRAY, new String[0]);
        sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_BOOL, false);
        sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_MMWAVE_BOOL, false);
        sDefaults.putBoolean(KEY_UNMETERED_NR_NSA_SUB6_BOOL, false);