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

Commit 0ebf6f17 authored by Roshan Pius's avatar Roshan Pius
Browse files

WifiOemMigrationHook: Rename class & methods to be more generic

This class will hold all the mainline related migration logic.
Currently, includes the config store migration hook. Will be adding the
Settings migration hook here in a future CL.

Bug: 148514485
Test: Compiles
Change-Id: Ie66abbdaa720c0fe0deabc4e3de55e97ccac416e
parent 368b170a
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -7838,23 +7838,23 @@ package android.net.wifi {
    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_CARRIER_PROVISIONING) public android.net.wifi.WifiNetworkSuggestion.Builder setCarrierId(int);
  }
  public final class WifiOemConfigStoreMigrationHook {
    method @Nullable public static android.net.wifi.WifiOemConfigStoreMigrationHook.MigrationData load();
  public final class WifiOemMigrationHook {
    method @Nullable public static android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData loadFromConfigStore();
  }
  public static final class WifiOemConfigStoreMigrationHook.MigrationData implements android.os.Parcelable {
  public static final class WifiOemMigrationHook.ConfigStoreMigrationData implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public java.util.List<android.net.wifi.WifiConfiguration> 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<android.net.wifi.WifiOemConfigStoreMigrationHook.MigrationData> CREATOR;
    field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData> CREATOR;
  }
  public static final class WifiOemConfigStoreMigrationHook.MigrationData.Builder {
    ctor public WifiOemConfigStoreMigrationHook.MigrationData.Builder();
    method @NonNull public android.net.wifi.WifiOemConfigStoreMigrationHook.MigrationData build();
    method @NonNull public android.net.wifi.WifiOemConfigStoreMigrationHook.MigrationData.Builder setUserSavedNetworkConfigurations(@NonNull java.util.List<android.net.wifi.WifiConfiguration>);
    method @NonNull public android.net.wifi.WifiOemConfigStoreMigrationHook.MigrationData.Builder setUserSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration);
  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<android.net.wifi.WifiConfiguration>);
    method @NonNull public android.net.wifi.WifiOemMigrationHook.ConfigStoreMigrationData.Builder setUserSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration);
  }
  public class WifiScanner {
+1 −1
Original line number Diff line number Diff line
@@ -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/WifiOemConfigStoreMigrationHook.java",
        "java/android/net/wifi/WifiOemMigrationHook.java",
        "java/android/net/wifi/wificond/*.java",
        ":libwificond_ipc_aidl",
    ],
+32 −31
Original line number Diff line number Diff line
@@ -28,30 +28,17 @@ import java.util.List;

/**
 * Class used to provide one time hooks for existing OEM devices to migrate their config store
 * data to the wifi mainline module.
 * <p>
 * Note:
 * <li> OEM's need to implement {@link #load()} only if their
 * existing config store format or file locations differs from the vanilla AOSP implementation (
 * which is what the wifi mainline module understands).
 * </li>
 * <li> The wifi mainline module will invoke {@link #load()}  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 #load()} occurs when a previously released device upgrades to the wifi
 * mainline module from an OEM implementation of the wifi stack.
 * </li>
 * data and other settings to the wifi mainline module.
 * @hide
 */
@SystemApi
public final class WifiOemConfigStoreMigrationHook {
public final class WifiOemMigrationHook {
    /**
     * Container for all the wifi config data to migrate.
     */
    public static final class MigrationData implements Parcelable {
    public static final class ConfigStoreMigrationData implements Parcelable {
        /**
         * Builder to create instance of {@link MigrationData}.
         * Builder to create instance of {@link ConfigStoreMigrationData}.
         */
        public static final class Builder {
            private List<WifiConfiguration> mUserSavedNetworkConfigurations;
@@ -92,39 +79,40 @@ public final class WifiOemConfigStoreMigrationHook {
            }

            /**
             * Build an instance of {@link MigrationData}.
             * Build an instance of {@link ConfigStoreMigrationData}.
             *
             * @return Instance of {@link MigrationData}.
             * @return Instance of {@link ConfigStoreMigrationData}.
             */
            public @NonNull MigrationData build() {
                return new MigrationData(mUserSavedNetworkConfigurations, mUserSoftApConfiguration);
            public @NonNull ConfigStoreMigrationData build() {
                return new ConfigStoreMigrationData(
                        mUserSavedNetworkConfigurations, mUserSoftApConfiguration);
            }
        }

        private final List<WifiConfiguration> mUserSavedNetworkConfigurations;
        private final SoftApConfiguration mUserSoftApConfiguration;

        private MigrationData(
        private ConfigStoreMigrationData(
                @Nullable List<WifiConfiguration> userSavedNetworkConfigurations,
                @Nullable SoftApConfiguration userSoftApConfiguration) {
            mUserSavedNetworkConfigurations = userSavedNetworkConfigurations;
            mUserSoftApConfiguration = userSoftApConfiguration;
        }

        public static final @NonNull Parcelable.Creator<MigrationData> CREATOR =
                new Parcelable.Creator<MigrationData>() {
        public static final @NonNull Parcelable.Creator<ConfigStoreMigrationData> CREATOR =
                new Parcelable.Creator<ConfigStoreMigrationData>() {
                    @Override
                    public MigrationData createFromParcel(Parcel in) {
                    public ConfigStoreMigrationData createFromParcel(Parcel in) {
                        List<WifiConfiguration> userSavedNetworkConfigurations =
                                in.readArrayList(null);
                        SoftApConfiguration userSoftApConfiguration = in.readParcelable(null);
                        return new MigrationData(
                        return new ConfigStoreMigrationData(
                                userSavedNetworkConfigurations, userSoftApConfiguration);
                    }

                    @Override
                    public MigrationData[] newArray(int size) {
                        return new MigrationData[size];
                    public ConfigStoreMigrationData[] newArray(int size) {
                        return new ConfigStoreMigrationData[size];
                    }
                };

@@ -164,16 +152,29 @@ public final class WifiOemConfigStoreMigrationHook {
        }
    }

    private WifiOemConfigStoreMigrationHook() { }
    private WifiOemMigrationHook() { }

    /**
     * Load data from OEM's config store.
     * <p>
     * Note:
     * <li> 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).
     * </li>
     * <li> 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.
     * </li>
     *
     * @return Instance of {@link MigrationData} for migrating data, null if no
     * @return Instance of {@link ConfigStoreMigrationData} for migrating data, null if no
     * migration is necessary.
     */
    @Nullable
    public static MigrationData load() {
    public static ConfigStoreMigrationData loadFromConfigStore() {
        // Note: OEM's should add code to parse data from their config store format here!
        return null;
    }