Loading core/java/android/net/NetworkCapabilities.java +12 −2 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ public final class NetworkCapabilities implements Parcelable { NET_CAPABILITY_FOREGROUND, NET_CAPABILITY_NOT_CONGESTED, NET_CAPABILITY_NOT_SUSPENDED, NET_CAPABILITY_OEM_PAID, }) public @interface NetCapability { } Loading Loading @@ -263,8 +264,15 @@ public final class NetworkCapabilities implements Parcelable { */ 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 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 Loading Loading @@ -312,7 +320,8 @@ public final class NetworkCapabilities implements Parcelable { (1 << NET_CAPABILITY_IA) | (1 << NET_CAPABILITY_IMS) | (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. Loading Loading @@ -1289,6 +1298,7 @@ public final class NetworkCapabilities implements Parcelable { case NET_CAPABILITY_FOREGROUND: return "FOREGROUND"; case NET_CAPABILITY_NOT_CONGESTED: return "NOT_CONGESTED"; case NET_CAPABILITY_NOT_SUSPENDED: return "NOT_SUSPENDED"; case NET_CAPABILITY_OEM_PAID: return "OEM_PAID"; default: return Integer.toString(capability); } } Loading tests/net/java/android/net/NetworkCapabilitiesTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -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_NOT_METERED; 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.RESTRICTED_CAPABILITIES; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; Loading Loading @@ -261,6 +262,19 @@ public class NetworkCapabilitiesTest { 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) { Parcel p = Parcel.obtain(); netCap.writeToParcel(p, /* flags */ 0); Loading Loading
core/java/android/net/NetworkCapabilities.java +12 −2 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ public final class NetworkCapabilities implements Parcelable { NET_CAPABILITY_FOREGROUND, NET_CAPABILITY_NOT_CONGESTED, NET_CAPABILITY_NOT_SUSPENDED, NET_CAPABILITY_OEM_PAID, }) public @interface NetCapability { } Loading Loading @@ -263,8 +264,15 @@ public final class NetworkCapabilities implements Parcelable { */ 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 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 Loading Loading @@ -312,7 +320,8 @@ public final class NetworkCapabilities implements Parcelable { (1 << NET_CAPABILITY_IA) | (1 << NET_CAPABILITY_IMS) | (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. Loading Loading @@ -1289,6 +1298,7 @@ public final class NetworkCapabilities implements Parcelable { case NET_CAPABILITY_FOREGROUND: return "FOREGROUND"; case NET_CAPABILITY_NOT_CONGESTED: return "NOT_CONGESTED"; case NET_CAPABILITY_NOT_SUSPENDED: return "NOT_SUSPENDED"; case NET_CAPABILITY_OEM_PAID: return "OEM_PAID"; default: return Integer.toString(capability); } } Loading
tests/net/java/android/net/NetworkCapabilitiesTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -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_NOT_METERED; 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.RESTRICTED_CAPABILITIES; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; Loading Loading @@ -261,6 +262,19 @@ public class NetworkCapabilitiesTest { 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) { Parcel p = Parcel.obtain(); netCap.writeToParcel(p, /* flags */ 0); Loading