Add has* utility functions to NetworkCapabilities
Change-Id: Icf735b778a3956812be522db39c29cf54c757a25
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index adbb185..0bb2632 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -84,6 +84,13 @@
public Collection<Integer> getNetworkCapabilities() {
return enumerateBits(mNetworkCapabilities);
}
+ public boolean hasCapability(int networkCapability) {
+ if (networkCapability < MIN_NET_CAPABILITY ||
+ networkCapability > MAX_NET_CAPABILITY) {
+ return false;
+ }
+ return ((mNetworkCapabilities & (1 << networkCapability)) != 0);
+ }
private Collection<Integer> enumerateBits(long val) {
ArrayList<Integer> result = new ArrayList<Integer>();
@@ -142,6 +149,12 @@
public Collection<Integer> getTransportTypes() {
return enumerateBits(mTransportTypes);
}
+ public boolean hasTransport(int transportType) {
+ if (transportType < MIN_TRANSPORT || transportType > MAX_TRANSPORT) {
+ return false;
+ }
+ return ((mTransportTypes & (1 << transportType)) != 0);
+ }
private void combineTransportTypes(NetworkCapabilities nc) {
this.mTransportTypes |= nc.mTransportTypes;
@@ -205,7 +218,8 @@
* {@hide}
*/
public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) {
- return (satisfiedByNetCapabilities(nc) &&
+ return (nc != null &&
+ satisfiedByNetCapabilities(nc) &&
satisfiedByTransportTypes(nc) &&
satisfiedByLinkBandwidths(nc));
}