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

Commit 8d0299b3 authored by Les Lee's avatar Les Lee Committed by Android (Google) Code Review
Browse files

Merge "wifi: Add bssid in SoftApInfo"

parents 0c7fa66c 83bdcefe
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7095,6 +7095,7 @@ package android.net.wifi {
  public final class SoftApInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getBandwidth();
    method @Nullable public android.net.MacAddress getBssid();
    method public int getFrequency();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int CHANNEL_WIDTH_160MHZ = 6; // 0x6
+1 −0
Original line number Diff line number Diff line
@@ -289,6 +289,7 @@ package android.net.wifi {
  public final class SoftApInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getBandwidth();
    method @Nullable public android.net.MacAddress getBssid();
    method public int getFrequency();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int CHANNEL_WIDTH_160MHZ = 6; // 0x6
+50 −6
Original line number Diff line number Diff line
@@ -19,9 +19,13 @@ package android.net.wifi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.net.MacAddress;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;

import com.android.internal.util.Preconditions;

import java.util.Objects;

/**
@@ -90,6 +94,10 @@ public final class SoftApInfo implements Parcelable {
    @WifiAnnotations.Bandwidth
    private int mBandwidth = CHANNEL_WIDTH_INVALID;

    /** The MAC Address which AP resides on. */
    @Nullable
    private MacAddress mBssid;

    /**
     * Get the frequency which AP resides on.
     */
@@ -125,6 +133,35 @@ public final class SoftApInfo implements Parcelable {
        mBandwidth = bandwidth;
    }

    /**
     * Get the MAC address (BSSID) of the AP. Null when AP disabled.
     */
    @Nullable
    public MacAddress getBssid() {
        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
            throw new UnsupportedOperationException();
        }
        return mBssid;
    }

    /**
      * Set the MAC address which AP resides on.
      * <p>
      * <li>If not set, defaults to null.</li>
      * @param bssid BSSID, The caller is responsible for avoiding collisions.
      * @throws IllegalArgumentException when the given BSSID is the all-zero or broadcast MAC
      *                                  address.
      *
      * @hide
      */
    public void setBssid(@Nullable MacAddress bssid) {
        if (bssid != null) {
            Preconditions.checkArgument(!bssid.equals(WifiManager.ALL_ZEROS_MAC_ADDRESS));
            Preconditions.checkArgument(!bssid.equals(MacAddress.BROADCAST_ADDRESS));
        }
        mBssid = bssid;
    }

    /**
     * @hide
     */
@@ -132,6 +169,7 @@ public final class SoftApInfo implements Parcelable {
        if (source != null) {
            mFrequency = source.mFrequency;
            mBandwidth = source.mBandwidth;
            mBssid = source.mBssid;
        }
    }

@@ -152,6 +190,7 @@ public final class SoftApInfo implements Parcelable {
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        dest.writeInt(mFrequency);
        dest.writeInt(mBandwidth);
        dest.writeParcelable(mBssid, flags);
    }

    @NonNull
@@ -161,6 +200,7 @@ public final class SoftApInfo implements Parcelable {
            SoftApInfo info = new SoftApInfo();
            info.mFrequency = in.readInt();
            info.mBandwidth = in.readInt();
            info.mBssid = in.readParcelable(MacAddress.class.getClassLoader());
            return info;
        }

@@ -172,10 +212,13 @@ public final class SoftApInfo implements Parcelable {
    @NonNull
    @Override
    public String toString() {
        return "SoftApInfo{"
                + "bandwidth= " + mBandwidth
                + ",frequency= " + mFrequency
                + '}';
        StringBuilder sbuf = new StringBuilder();
        sbuf.append("SoftApInfo{");
        sbuf.append("bandwidth= ").append(mBandwidth);
        sbuf.append(",frequency= ").append(mFrequency);
        if (mBssid != null) sbuf.append(",bssid=").append(mBssid.toString());
        sbuf.append("}");
        return sbuf.toString();
    }

    @Override
@@ -184,11 +227,12 @@ public final class SoftApInfo implements Parcelable {
        if (!(o instanceof SoftApInfo)) return false;
        SoftApInfo softApInfo = (SoftApInfo) o;
        return mFrequency == softApInfo.mFrequency
                && mBandwidth == softApInfo.mBandwidth;
                && mBandwidth == softApInfo.mBandwidth
                && Objects.equals(mBssid, softApInfo.mBssid);
    }

    @Override
    public int hashCode() {
        return Objects.hash(mFrequency, mBandwidth);
        return Objects.hash(mFrequency, mBandwidth, mBssid);
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.net.wifi;

import android.net.MacAddress;
import android.os.Parcel;

import static org.junit.Assert.assertEquals;
@@ -38,6 +39,8 @@ public class SoftApInfoTest {
        SoftApInfo info = new SoftApInfo();
        info.setFrequency(2412);
        info.setBandwidth(SoftApInfo.CHANNEL_WIDTH_20MHZ);
        info.setBssid(MacAddress.fromString("aa:bb:cc:dd:ee:ff"));


        SoftApInfo copiedInfo = new SoftApInfo(info);

@@ -53,6 +56,7 @@ public class SoftApInfoTest {
        SoftApInfo info = new SoftApInfo();
        info.setFrequency(2412);
        info.setBandwidth(SoftApInfo.CHANNEL_WIDTH_20MHZ);
        info.setBssid(MacAddress.fromString("aa:bb:cc:dd:ee:ff"));

        Parcel parcelW = Parcel.obtain();
        info.writeToParcel(parcelW, 0);