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

Commit 397a3587 authored by Jimi Chen's avatar Jimi Chen
Browse files

Add a key for reading avoid bad Wi-Fi from carrier config

This change introduces a new key in the carrier configuration to allow
for better control over avoid bad Wi-Fi on a per-MVNO basis.
It migrates the logic for reading the "avoid bad Wi-Fi" setting from
device resources to the carrier configuration.

Flag: android.net.platform.flags.avoid_bad_wifi_from_carrier_config
Bug: 410976315
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.MultinetworkPolicyTrackerTest
Test: atest CtsNetTestCases:android.net.cts.ConnectivityManagerTest
Change-Id: Ide0fd1e21b7590f42a43cf709767481a73c1e4eb
parent e7a0aef5
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1286,6 +1286,18 @@ java_aconfig_library {
    visibility: [":__subpackages__"],
}

java_aconfig_library {
    name: "android.net.platform.flags-aconfig-java-export",
    aconfig_declarations: "android.net.platform.flags-aconfig",
    mode: "exported",
    min_sdk_version: "30",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
    apex_available: [
        "//apex_available:platform",
        "com.android.tethering",
    ],
}

java_aconfig_library {
    name: "com.android.net.thread.platform.flags-aconfig-java",
    aconfig_declarations: "com.android.net.thread.platform.flags-aconfig",
+1 −0
Original line number Diff line number Diff line
@@ -45034,6 +45034,7 @@ package android.telephony {
    field public static final String KEY_APN_EXPAND_BOOL = "apn_expand_bool";
    field public static final String KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY = "apn_settings_default_apn_types_string_array";
    field public static final String KEY_AUTO_RETRY_ENABLED_BOOL = "auto_retry_enabled_bool";
    field @FlaggedApi("android.net.platform.flags.avoid_bad_wifi_from_carrier_config") public static final String KEY_AVOID_BAD_WIFI_BOOL = "avoid_bad_wifi_bool";
    field public static final String KEY_CALL_BARRING_DEFAULT_SERVICE_CLASS_INT = "call_barring_default_service_class_int";
    field public static final String KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL = "call_barring_supports_deactivate_all_bool";
    field public static final String KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL = "call_barring_supports_password_change_bool";
+8 −0
Original line number Diff line number Diff line
@@ -45,3 +45,11 @@ flag {
  description: "Flags the TYPE_VPN_OEM_SERVICE and TYPE_VPN_OEM_LEGACY VpnManager API constants"
  bug: "389829981"
}

flag {
  name: "avoid_bad_wifi_from_carrier_config"
  namespace: "android_core_networking"
  is_exported: true
  description: "Flag for reading avoid bad Wi-Fi customization from carrier config"
  bug: "410976315"
}
+17 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@
package android.telephony;
import static android.net.platform.flags.Flags.FLAG_AVOID_BAD_WIFI_FROM_CARRIER_CONFIG;
import static android.net.platform.flags.Flags.avoidBadWifiFromCarrierConfig;
import android.Manifest;
import android.annotation.CallbackExecutor;
import android.annotation.FlaggedApi;
@@ -10718,6 +10721,17 @@ public class CarrierConfigManager {
    public static final String KEY_WEAR_CONNECTIVITY_EXTEND_BT_TO_CELL_DELAY_ON_WIFI_MS_INT =
            "wifi_connectivity_extend_cell_delay";
    /**
     * Used in reading the 'avoid bad Wi-Fi' setting from the carrier config.
     * This allows the device to switch from Wi-Fi networks losing internet access to another
     * available and working connection, such as mobile.
     * This configuration was originally read from resources and could not be customized per-MVNO.
     * Reading from the carrier config improves flexibility to meet the needs of different carriers.
     */
    @FlaggedApi(FLAG_AVOID_BAD_WIFI_FROM_CARRIER_CONFIG)
    public static final String KEY_AVOID_BAD_WIFI_BOOL =
            "avoid_bad_wifi_bool";
    /** The default value for every variable. */
    private static final PersistableBundle sDefaults;
@@ -11552,6 +11566,9 @@ public class CarrierConfigManager {
        sDefaults.putInt(KEY_WEAR_CONNECTIVITY_BT_TO_CELL_DELAY_MS_INT, -1);
        sDefaults.putInt(KEY_WEAR_CONNECTIVITY_EXTEND_BT_TO_CELL_DELAY_ON_WIFI_MS_INT, -1);
        sDefaults.putInt(KEY_SATELLITE_SOS_MAX_DATAGRAM_SIZE_BYTES_INT, 255);
        if (avoidBadWifiFromCarrierConfig()) {
            sDefaults.putBoolean(KEY_AVOID_BAD_WIFI_BOOL, true);
        }
    }
    /**