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

Commit 4fd1f355 authored by Etan Cohen's avatar Etan Cohen Committed by Android (Google) Code Review
Browse files

Merge "[AWARE] Make PeerHandle parcelable"

parents 459d6af0 a36b5c58
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -29751,7 +29751,10 @@ package android.net.wifi.aware {
    method public void onIdentityChanged(byte[]);
  }
  public class PeerHandle {
  public final class PeerHandle implements android.os.Parcelable {
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.net.wifi.aware.PeerHandle> CREATOR;
  }
  public final class PublishConfig implements android.os.Parcelable {
+29 −1
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package android.net.wifi.aware;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Opaque object used to represent a Wi-Fi Aware peer. Obtained from discovery sessions in
 * {@link DiscoverySessionCallback#onServiceDiscovered(PeerHandle, byte[], java.util.List)} or
@@ -33,7 +36,7 @@ package android.net.wifi.aware;
 * {@link PublishConfig.Builder#setServiceSpecificInfo(byte[])}, or match filter,
 * {@link PublishConfig.Builder#setMatchFilter(java.util.List)}.
 */
public class PeerHandle {
public final class PeerHandle implements Parcelable {
    /** @hide */
    public PeerHandle(int peerId) {
        this.peerId = peerId;
@@ -59,4 +62,29 @@ public class PeerHandle {
    public int hashCode() {
        return peerId;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(peerId);
    }

    public static final Creator<PeerHandle> CREATOR = new Creator<PeerHandle>() {
        @Override
        public PeerHandle[] newArray(int size) {
            return new PeerHandle[size];
        }

        @Override
        public PeerHandle createFromParcel(Parcel in) {
            int peerHandle = in.readInt();

            return new PeerHandle(peerHandle);
        }
    };

}
+20 −0
Original line number Diff line number Diff line
@@ -1382,4 +1382,24 @@ public class WifiAwareManagerTest {
        assertEquals(cap.getPeerIpv6Addr().toString(), "/fe80::1322:33ff:fe44:5566%5");
        assertEquals(cap.hashCode(), rereadCap.hashCode());
    }

    // PeerHandle tests

    @Test
    public void testPeerHandleParcel() {
        final PeerHandle peerHandle = new PeerHandle(5);

        Parcel parcelW = Parcel.obtain();
        peerHandle.writeToParcel(parcelW, 0);
        byte[] bytes = parcelW.marshall();
        parcelW.recycle();

        Parcel parcelR = Parcel.obtain();
        parcelR.unmarshall(bytes, 0, bytes.length);
        parcelR.setDataPosition(0);
        PeerHandle rereadPeerHandle = PeerHandle.CREATOR.createFromParcel(parcelR);

        assertEquals(peerHandle, rereadPeerHandle);
        assertEquals(peerHandle.hashCode(), rereadPeerHandle.hashCode());
    }
}