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

Commit b8f0e69e authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add additional fields to RecommendationRequest."

parents 10c514d9 b50ade8b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -25762,6 +25762,8 @@ package android.net {
    method public android.net.wifi.WifiConfiguration[] getConnectableConfigs();
    method public android.net.wifi.WifiConfiguration getConnectedConfig();
    method public android.net.wifi.WifiConfiguration getDefaultWifiConfig();
    method public int getLastSelectedNetworkId();
    method public long getLastSelectedNetworkTimestamp();
    method public android.net.wifi.ScanResult[] getScanResults();
    method public void setConnectableConfigs(android.net.wifi.WifiConfiguration[]);
    method public void setConnectedConfig(android.net.wifi.WifiConfiguration);
@@ -25775,6 +25777,7 @@ package android.net {
    method public android.net.RecommendationRequest.Builder setConnectableConfigs(android.net.wifi.WifiConfiguration[]);
    method public android.net.RecommendationRequest.Builder setConnectedWifiConfig(android.net.wifi.WifiConfiguration);
    method public android.net.RecommendationRequest.Builder setDefaultWifiConfig(android.net.wifi.WifiConfiguration);
    method public android.net.RecommendationRequest.Builder setLastSelectedNetwork(int, long);
    method public android.net.RecommendationRequest.Builder setScanResults(android.net.wifi.ScanResult[]);
  }
+46 −17
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@ public final class RecommendationRequest implements Parcelable {
    private final WifiConfiguration mDefaultConfig;
    private WifiConfiguration mConnectedConfig;
    private WifiConfiguration[] mConnectableConfigs;
    private final int mLastSelectedNetworkId;
    private final long mLastSelectedNetworkTimestamp;

    /**
     * Builder class for constructing {@link RecommendationRequest} instances.
@@ -48,17 +50,9 @@ public final class RecommendationRequest implements Parcelable {
        private WifiConfiguration mDefaultConfig;
        private WifiConfiguration mConnectedConfig;
        private WifiConfiguration[] mConnectableConfigs;
        private int mLastSelectedNetworkId;
        private long mLastSelectedTimestamp;

        /**
         * @param scanResults the array of {@link ScanResult}s the recommendation must be
         *                    constrained to i.e. if a non-null wifi config recommendation is
         *                    returned then it must be able to connect to one of the networks in
         *                    the results list.
         *
         *                    If the array is {@code null} or empty then there is no constraint.
         *
         * @return this
         */
        public Builder setScanResults(ScanResult[] scanResults) {
            mScanResults = scanResults;
            return this;
@@ -89,7 +83,20 @@ public final class RecommendationRequest implements Parcelable {
         * @return this
         */
        public Builder setConnectableConfigs(WifiConfiguration[] connectableConfigs) {
            mConnectableConfigs = connectableConfigs;
            this.mConnectableConfigs = connectableConfigs;
            return this;
        }

        /**
         * @param networkId The {@link WifiConfiguration#networkId} of the last user selected
         *                  network.
         * @param timestamp The {@link android.os.SystemClock#elapsedRealtime()} when the user
         *                  selected {@code networkId}.
         * @return this
         */
        public Builder setLastSelectedNetwork(int networkId, long timestamp) {
            this.mLastSelectedNetworkId = networkId;
            this.mLastSelectedTimestamp = timestamp;
            return this;
        }

@@ -97,10 +104,8 @@ public final class RecommendationRequest implements Parcelable {
         * @return a new {@link RecommendationRequest} instance
         */
        public RecommendationRequest build() {
            return new RecommendationRequest(mScanResults,
                    mDefaultConfig,
                    mConnectedConfig,
                    mConnectableConfigs);
            return new RecommendationRequest(mScanResults, mDefaultConfig, mConnectedConfig,
                    mConnectableConfigs, mLastSelectedNetworkId, mLastSelectedTimestamp);
        }
    }

@@ -154,15 +159,35 @@ public final class RecommendationRequest implements Parcelable {
        mConnectableConfigs = connectableConfigs;
    }

    /**
     * @return The {@link WifiConfiguration#networkId} of the last user selected network.
     *         {@code 0} if not set.
     */
    public int getLastSelectedNetworkId() {
        return mLastSelectedNetworkId;
    }

    /**
     * @return The {@link android.os.SystemClock#elapsedRealtime()} when the user selected
     *         {@link #getLastSelectedNetworkId()}. {@code 0} if not set.
     */
    public long getLastSelectedNetworkTimestamp() {
        return mLastSelectedNetworkTimestamp;
    }

    @VisibleForTesting
    RecommendationRequest(ScanResult[] scanResults,
            WifiConfiguration defaultWifiConfig,
            WifiConfiguration connectedWifiConfig,
            WifiConfiguration[] connectableConfigs) {
            WifiConfiguration[] connectableConfigs,
            int lastSelectedNetworkId,
            long lastSelectedNetworkTimestamp) {
        mScanResults = scanResults;
        mDefaultConfig = defaultWifiConfig;
        mConnectedConfig = connectedWifiConfig;
        mConnectableConfigs = connectableConfigs;
        mLastSelectedNetworkId = lastSelectedNetworkId;
        mLastSelectedNetworkTimestamp = lastSelectedNetworkTimestamp;
    }

    protected RecommendationRequest(Parcel in) {
@@ -190,6 +215,9 @@ public final class RecommendationRequest implements Parcelable {
        } else {
            mConnectableConfigs = null;
        }

        mLastSelectedNetworkId = in.readInt();
        mLastSelectedNetworkTimestamp = in.readLong();
    }

    @Override
@@ -220,7 +248,8 @@ public final class RecommendationRequest implements Parcelable {
            dest.writeInt(0);
        }


        dest.writeInt(mLastSelectedNetworkId);
        dest.writeLong(mLastSelectedNetworkTimestamp);
    }

    public static final Creator<RecommendationRequest> CREATOR =
+18 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ package android.net;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.os.Parcel;
import android.os.SystemClock;
import android.test.AndroidTestCase;

public class RecommendationRequestTest extends AndroidTestCase {
@@ -10,6 +11,8 @@ public class RecommendationRequestTest extends AndroidTestCase {
    private WifiConfiguration mDefaultConfig;
    private WifiConfiguration mConnectedConfig;
    private WifiConfiguration[] mConnectableConfigs;
    private int mLastSelectedNetworkId;
    private long mLastSelectedNetworkTimestamp;

    @Override
    public void setUp() throws Exception {
@@ -35,6 +38,8 @@ public class RecommendationRequestTest extends AndroidTestCase {
        mConnectedConfig = new WifiConfiguration();
        mConnectedConfig.SSID = "connected_config";
        mConnectableConfigs = new WifiConfiguration[] {mDefaultConfig, mConnectedConfig};
        mLastSelectedNetworkId = 5;
        mLastSelectedNetworkTimestamp = SystemClock.elapsedRealtime();
    }

    public void testParceling() throws Exception {
@@ -43,6 +48,7 @@ public class RecommendationRequestTest extends AndroidTestCase {
                .setScanResults(mScanResults)
                .setConnectedWifiConfig(mConnectedConfig)
                .setConnectableConfigs(mConnectableConfigs)
                .setLastSelectedNetwork(mLastSelectedNetworkId, mLastSelectedNetworkTimestamp)
                .build();

        RecommendationRequest parceled = passThroughParcel(request);
@@ -60,6 +66,8 @@ public class RecommendationRequestTest extends AndroidTestCase {
        for (int i = 0; i < parceledConfigs.length; i++) {
            assertEquals(mConnectableConfigs[i].SSID, parceledConfigs[i].SSID);
        }
        assertEquals(mLastSelectedNetworkId, parceled.getLastSelectedNetworkId());
        assertEquals(mLastSelectedNetworkTimestamp, parceled.getLastSelectedNetworkTimestamp());
    }

    public void testParceling_nullScanResults() throws Exception {
@@ -82,6 +90,16 @@ public class RecommendationRequestTest extends AndroidTestCase {
        assertNull(parceledConfigs);
    }

    public void testParceling_unsetLastSelectedNetwork() throws Exception {
        RecommendationRequest request = new RecommendationRequest.Builder()
                .build();

        RecommendationRequest parceled = passThroughParcel(request);

        assertEquals(0, parceled.getLastSelectedNetworkId());
        assertEquals(0, parceled.getLastSelectedNetworkTimestamp());
    }

    private RecommendationRequest passThroughParcel(RecommendationRequest request) {
        Parcel p = Parcel.obtain();
        RecommendationRequest output = null;