Merge "Add OEM_PAID network capability" am: 2501283064

am: 82fdea2d7b

Change-Id: Ie0377fea66f784c910bd0a06f87543cc5cf82c84
This commit is contained in:
Pavel Maltsev
2018-02-28 08:28:25 +00:00
committed by android-build-merger
2 changed files with 26 additions and 2 deletions

View File

@@ -117,6 +117,7 @@ public final class NetworkCapabilities implements Parcelable {
NET_CAPABILITY_FOREGROUND, NET_CAPABILITY_FOREGROUND,
NET_CAPABILITY_NOT_CONGESTED, NET_CAPABILITY_NOT_CONGESTED,
NET_CAPABILITY_NOT_SUSPENDED, NET_CAPABILITY_NOT_SUSPENDED,
NET_CAPABILITY_OEM_PAID,
}) })
public @interface NetCapability { } public @interface NetCapability { }
@@ -264,8 +265,15 @@ public final class NetworkCapabilities implements Parcelable {
*/ */
public static final int NET_CAPABILITY_NOT_SUSPENDED = 21; public static final int NET_CAPABILITY_NOT_SUSPENDED = 21;
/**
* Indicates that traffic that goes through this network is paid by oem. For example,
* this network can be used by system apps to upload telemetry data.
* @hide
*/
public static final int NET_CAPABILITY_OEM_PAID = 22;
private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS;
private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_NOT_SUSPENDED; private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_OEM_PAID;
/** /**
* Network capabilities that are expected to be mutable, i.e., can change while a particular * Network capabilities that are expected to be mutable, i.e., can change while a particular
@@ -313,7 +321,8 @@ public final class NetworkCapabilities implements Parcelable {
(1 << NET_CAPABILITY_IA) | (1 << NET_CAPABILITY_IA) |
(1 << NET_CAPABILITY_IMS) | (1 << NET_CAPABILITY_IMS) |
(1 << NET_CAPABILITY_RCS) | (1 << NET_CAPABILITY_RCS) |
(1 << NET_CAPABILITY_XCAP); (1 << NET_CAPABILITY_XCAP) |
(1 << NET_CAPABILITY_OEM_PAID);
/** /**
* Capabilities that suggest that a network is unrestricted. * Capabilities that suggest that a network is unrestricted.
@@ -1290,6 +1299,7 @@ public final class NetworkCapabilities implements Parcelable {
case NET_CAPABILITY_FOREGROUND: return "FOREGROUND"; case NET_CAPABILITY_FOREGROUND: return "FOREGROUND";
case NET_CAPABILITY_NOT_CONGESTED: return "NOT_CONGESTED"; case NET_CAPABILITY_NOT_CONGESTED: return "NOT_CONGESTED";
case NET_CAPABILITY_NOT_SUSPENDED: return "NOT_SUSPENDED"; case NET_CAPABILITY_NOT_SUSPENDED: return "NOT_SUSPENDED";
case NET_CAPABILITY_OEM_PAID: return "OEM_PAID";
default: return Integer.toString(capability); default: return Integer.toString(capability);
} }
} }

View File

@@ -23,6 +23,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS;
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PAID;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkCapabilities.RESTRICTED_CAPABILITIES; import static android.net.NetworkCapabilities.RESTRICTED_CAPABILITIES;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
@@ -261,6 +262,19 @@ public class NetworkCapabilitiesTest {
assertEqualsThroughMarshalling(netCap); assertEqualsThroughMarshalling(netCap);
} }
@Test
public void testOemPaid() {
NetworkCapabilities nc = new NetworkCapabilities();
nc.maybeMarkCapabilitiesRestricted();
assertFalse(nc.hasCapability(NET_CAPABILITY_OEM_PAID));
assertTrue(nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
nc.addCapability(NET_CAPABILITY_OEM_PAID);
nc.maybeMarkCapabilitiesRestricted();
assertTrue(nc.hasCapability(NET_CAPABILITY_OEM_PAID));
assertFalse(nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
}
private void assertEqualsThroughMarshalling(NetworkCapabilities netCap) { private void assertEqualsThroughMarshalling(NetworkCapabilities netCap) {
Parcel p = Parcel.obtain(); Parcel p = Parcel.obtain();
netCap.writeToParcel(p, /* flags */ 0); netCap.writeToParcel(p, /* flags */ 0);