Add has* utility functions to NetworkCapabilities

Change-Id: Icf735b778a3956812be522db39c29cf54c757a25
This commit is contained in:
Robert Greenwalt
2014-05-08 00:02:04 -07:00
parent d6ee688546
commit c41962f220

View File

@@ -84,6 +84,13 @@ public final class NetworkCapabilities implements Parcelable {
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 final class NetworkCapabilities implements Parcelable {
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 @@ public final class NetworkCapabilities implements Parcelable {
* {@hide}
*/
public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) {
return (satisfiedByNetCapabilities(nc) &&
return (nc != null &&
satisfiedByNetCapabilities(nc) &&
satisfiedByTransportTypes(nc) &&
satisfiedByLinkBandwidths(nc));
}