diff options
| author | 2019-03-19 17:59:22 -0700 | |
|---|---|---|
| committer | 2019-03-19 17:59:22 -0700 | |
| commit | 61ac53a0fcf94dca67196deff63bc6726aa89438 (patch) | |
| tree | 731edc94fcdebe9c82080c71b6534e843e7ad6ea | |
| parent | 23156218395450ddf8113db0f233aed4f01b5fd1 (diff) | |
| parent | 39e5f3feaf41bb53dd5fc1cd08b0394928893181 (diff) | |
Merge "Add Parcelable implementation for ApfCapabilities" am: cea27f4327
am: 39e5f3feaf
Change-Id: Iecec6a6376e2ff64d24813dbdb5b958f6968d627
| -rw-r--r-- | api/system-current.txt | 5 | ||||
| -rw-r--r-- | api/test-current.txt | 5 | ||||
| -rw-r--r-- | core/java/android/net/apf/ApfCapabilities.java | 36 | ||||
| -rw-r--r-- | tests/net/java/android/net/apf/ApfCapabilitiesTest.java | 50 |
4 files changed, 93 insertions, 3 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 9bb92da741cc..5357805cd189 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3323,11 +3323,14 @@ package android.net { package android.net.apf { - public class ApfCapabilities { + public final class ApfCapabilities implements android.os.Parcelable { ctor public ApfCapabilities(int, int, int); + method public int describeContents(); method public static boolean getApfDrop8023Frames(android.content.Context); method public static int[] getApfEthTypeBlackList(android.content.Context); method public boolean hasDataAccess(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<android.net.apf.ApfCapabilities> CREATOR; field public final int apfPacketFormat; field public final int apfVersionSupported; field public final int maximumApfProgramSize; diff --git a/api/test-current.txt b/api/test-current.txt index fa6442cc6d3f..548086d59fb8 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -733,11 +733,14 @@ package android.net { package android.net.apf { - public class ApfCapabilities { + public final class ApfCapabilities implements android.os.Parcelable { ctor public ApfCapabilities(int, int, int); + method public int describeContents(); method public static boolean getApfDrop8023Frames(android.content.Context); method public static int[] getApfEthTypeBlackList(android.content.Context); method public boolean hasDataAccess(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<android.net.apf.ApfCapabilities> CREATOR; field public final int apfPacketFormat; field public final int apfVersionSupported; field public final int maximumApfProgramSize; diff --git a/core/java/android/net/apf/ApfCapabilities.java b/core/java/android/net/apf/ApfCapabilities.java index e09fa8fd9e77..d6023d701762 100644 --- a/core/java/android/net/apf/ApfCapabilities.java +++ b/core/java/android/net/apf/ApfCapabilities.java @@ -19,17 +19,20 @@ package android.net.apf; import android.annotation.SystemApi; import android.annotation.TestApi; import android.content.Context; +import android.os.Parcel; +import android.os.Parcelable; import com.android.internal.R; /** * APF program support capabilities. * + * This class is immutable. * @hide */ @SystemApi @TestApi -public class ApfCapabilities { +public final class ApfCapabilities implements Parcelable { /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for * packet filtering using APF programs. @@ -53,6 +56,37 @@ public class ApfCapabilities { this.apfPacketFormat = apfPacketFormat; } + private ApfCapabilities(Parcel in) { + apfVersionSupported = in.readInt(); + maximumApfProgramSize = in.readInt(); + apfPacketFormat = in.readInt(); + } + + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(apfVersionSupported); + dest.writeInt(maximumApfProgramSize); + dest.writeInt(apfPacketFormat); + } + + public static final Creator<ApfCapabilities> CREATOR = new Creator<ApfCapabilities>() { + @Override + public ApfCapabilities createFromParcel(Parcel in) { + return new ApfCapabilities(in); + } + + @Override + public ApfCapabilities[] newArray(int size) { + return new ApfCapabilities[size]; + } + }; + @Override public String toString() { return String.format("%s{version: %d, maxSize: %d, format: %d}", getClass().getSimpleName(), diff --git a/tests/net/java/android/net/apf/ApfCapabilitiesTest.java b/tests/net/java/android/net/apf/ApfCapabilitiesTest.java new file mode 100644 index 000000000000..75752c33da5c --- /dev/null +++ b/tests/net/java/android/net/apf/ApfCapabilitiesTest.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.apf; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +import android.net.shared.ParcelableTestUtil; + +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.internal.util.TestUtils; + +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@SmallTest +public class ApfCapabilitiesTest { + @Test + public void testParcelUnparcel() { + final ApfCapabilities caps = new ApfCapabilities(123, 456, 789); + ParcelableTestUtil.assertFieldCountEquals(3, ApfCapabilities.class); + + TestUtils.assertParcelingIsLossless(caps, ApfCapabilities.CREATOR); + } + + @Test + public void testEquals() { + assertEquals(new ApfCapabilities(1, 2, 3), new ApfCapabilities(1, 2, 3)); + assertNotEquals(new ApfCapabilities(2, 2, 3), new ApfCapabilities(1, 2, 3)); + assertNotEquals(new ApfCapabilities(1, 3, 3), new ApfCapabilities(1, 2, 3)); + assertNotEquals(new ApfCapabilities(1, 2, 4), new ApfCapabilities(1, 2, 3)); + } +} |