diff --git a/api/system-current.txt b/api/system-current.txt index 20ad83d1a4083..8d35aeb623025 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -7558,6 +7558,52 @@ package android.net.wifi { method public void stop(int); } + public final class WifiMigration { + method @Nullable public static android.net.wifi.WifiMigration.ConfigStoreMigrationData loadFromConfigStore(); + method @NonNull public static android.net.wifi.WifiMigration.SettingsMigrationData loadFromSettings(@NonNull android.content.Context); + method public static void removeConfigStore(); + } + + public static final class WifiMigration.ConfigStoreMigrationData implements android.os.Parcelable { + method public int describeContents(); + method @Nullable public java.util.List getUserSavedNetworkConfigurations(); + method @Nullable public android.net.wifi.SoftApConfiguration getUserSoftApConfiguration(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + + public static final class WifiMigration.ConfigStoreMigrationData.Builder { + ctor public WifiMigration.ConfigStoreMigrationData.Builder(); + method @NonNull public android.net.wifi.WifiMigration.ConfigStoreMigrationData build(); + method @NonNull public android.net.wifi.WifiMigration.ConfigStoreMigrationData.Builder setUserSavedNetworkConfigurations(@NonNull java.util.List); + method @NonNull public android.net.wifi.WifiMigration.ConfigStoreMigrationData.Builder setUserSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration); + } + + public static final class WifiMigration.SettingsMigrationData implements android.os.Parcelable { + method public int describeContents(); + method @Nullable public String getP2pDeviceName(); + method public boolean isP2pFactoryResetPending(); + method public boolean isScanAlwaysAvailable(); + method public boolean isScanThrottleEnabled(); + method public boolean isSoftApTimeoutEnabled(); + method public boolean isVerboseLoggingEnabled(); + method public boolean isWakeUpEnabled(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + + public static final class WifiMigration.SettingsMigrationData.Builder { + ctor public WifiMigration.SettingsMigrationData.Builder(); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData build(); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setP2pDeviceName(@Nullable String); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setP2pFactoryResetPending(boolean); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setScanAlwaysAvailable(boolean); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setScanThrottleEnabled(boolean); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setSoftApTimeoutEnabled(boolean); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setVerboseLoggingEnabled(boolean); + method @NonNull public android.net.wifi.WifiMigration.SettingsMigrationData.Builder setWakeUpEnabled(boolean); + } + public class WifiNetworkConnectionStatistics implements android.os.Parcelable { ctor public WifiNetworkConnectionStatistics(int, int); ctor public WifiNetworkConnectionStatistics(); @@ -7582,51 +7628,6 @@ package android.net.wifi { method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_CARRIER_PROVISIONING) public android.net.wifi.WifiNetworkSuggestion.Builder setCarrierId(int); } - public final class WifiOemMigrationHook { - method @Nullable public static android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData loadFromConfigStore(); - method @NonNull public static android.net.wifi.WifiOemMigrationHook.SettingsMigrationData loadFromSettings(@NonNull android.content.Context); - } - - public static final class WifiOemMigrationHook.ConfigStoreMigrationData implements android.os.Parcelable { - method public int describeContents(); - method @Nullable public java.util.List getUserSavedNetworkConfigurations(); - method @Nullable public android.net.wifi.SoftApConfiguration getUserSoftApConfiguration(); - method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - } - - public static final class WifiOemMigrationHook.ConfigStoreMigrationData.Builder { - ctor public WifiOemMigrationHook.ConfigStoreMigrationData.Builder(); - method @NonNull public android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData build(); - method @NonNull public android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData.Builder setUserSavedNetworkConfigurations(@NonNull java.util.List); - method @NonNull public android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData.Builder setUserSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration); - } - - public static final class WifiOemMigrationHook.SettingsMigrationData implements android.os.Parcelable { - method public int describeContents(); - method @Nullable public String getP2pDeviceName(); - method public boolean isP2pFactoryResetPending(); - method public boolean isScanAlwaysAvailable(); - method public boolean isScanThrottleEnabled(); - method public boolean isSoftApTimeoutEnabled(); - method public boolean isVerboseLoggingEnabled(); - method public boolean isWakeUpEnabled(); - method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - } - - public static final class WifiOemMigrationHook.SettingsMigrationData.Builder { - ctor public WifiOemMigrationHook.SettingsMigrationData.Builder(); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData build(); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setP2pDeviceName(@Nullable String); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setP2pFactoryResetPending(boolean); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setScanAlwaysAvailable(boolean); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setScanThrottleEnabled(boolean); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setSoftApTimeoutEnabled(boolean); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setVerboseLoggingEnabled(boolean); - method @NonNull public android.net.wifi.WifiOemMigrationHook.SettingsMigrationData.Builder setWakeUpEnabled(boolean); - } - public class WifiScanner { method @Deprecated public void configureWifiChange(int, int, int, int, int, android.net.wifi.WifiScanner.BssidInfo[]); method @Deprecated public void configureWifiChange(android.net.wifi.WifiScanner.WifiChangeSettings); diff --git a/wifi/Android.bp b/wifi/Android.bp index e253d6d4f6cbd..91174d3c3be2d 100644 --- a/wifi/Android.bp +++ b/wifi/Android.bp @@ -47,7 +47,7 @@ filegroup { // framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache // to a separate package. "java/android/net/wifi/WifiNetworkScoreCache.java", - "java/android/net/wifi/WifiOemMigrationHook.java", + "java/android/net/wifi/WifiMigration.java", "java/android/net/wifi/nl80211/*.java", ":libwificond_ipc_aidl", ], diff --git a/wifi/java/android/net/wifi/WifiOemMigrationHook.java b/wifi/java/android/net/wifi/WifiMigration.java similarity index 93% rename from wifi/java/android/net/wifi/WifiOemMigrationHook.java rename to wifi/java/android/net/wifi/WifiMigration.java index 5301dd0133638..a3482d732a1ba 100755 --- a/wifi/java/android/net/wifi/WifiOemMigrationHook.java +++ b/wifi/java/android/net/wifi/WifiMigration.java @@ -34,9 +34,9 @@ import java.util.List; * @hide */ @SystemApi -public final class WifiOemMigrationHook { +public final class WifiMigration { - private WifiOemMigrationHook() { } + private WifiMigration() { } /** * Container for all the wifi config data to migrate. @@ -161,16 +161,16 @@ public final class WifiOemMigrationHook { * Load data from OEM's config store. *

* Note: - *

  • OEM's need to implement {@link #loadFromConfigStore()} ()} only if their - * existing config store format or file locations differs from the vanilla AOSP implementation ( - * which is what the wifi mainline module understands). + *
  • OEMs need to implement {@link #loadFromConfigStore()} ()} only if their + * existing config store format or file locations differs from the vanilla AOSP implementation. *
  • - *
  • The wifi mainline module will invoke {@link #loadFromConfigStore()} method on every + *
  • The wifi mainline module will invoke {@link #loadFromConfigStore()} method on every * bootup, its the responsibility of the OEM implementation to ensure that this method returns * non-null data only on the first bootup. Once the migration is done, the OEM can safely delete - * their config store files and then return null on any subsequent reboots. The first & only - * relevant invocation of {@link #loadFromConfigStore()} occurs when a previously released - * device upgrades to the wifi mainline module from an OEM implementation of the wifi stack. + * their config store files when {@link #removeConfigStore()} is invoked. + *
  • The first & only relevant invocation of {@link #loadFromConfigStore()} occurs when a + * previously released device upgrades to the wifi mainline module from an OEM implementation + * of the wifi stack. *
  • * * @return Instance of {@link ConfigStoreMigrationData} for migrating data, null if no @@ -178,10 +178,26 @@ public final class WifiOemMigrationHook { */ @Nullable public static ConfigStoreMigrationData loadFromConfigStore() { - // Note: OEM's should add code to parse data from their config store format here! + // Note: OEMs should add code to parse data from their config store format here! return null; } + /** + * Remove OEM's config store. + *

    + * Note: + *

  • OEMs need to implement {@link #removeConfigStore()} only if their + * existing config store format or file locations differs from the vanilla AOSP implementation ( + * which is what the wifi mainline module understands). + *
  • + *
  • The wifi mainline module will invoke {@link #removeConfigStore()} after it migrates + * all the existing data retrieved from {@link #loadFromConfigStore()}. + *
  • + */ + public static void removeConfigStore() { + // Note: OEMs should remove their custom config store files here! + } + /** * Container for all the wifi settings data to migrate. */