Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c55e333 authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Add has* utility functions to NetworkCapabilities

Change-Id: Icf735b778a3956812be522db39c29cf54c757a25
parent 56e13f2d
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -84,6 +84,13 @@ public final class NetworkCapabilities implements Parcelable {
    public Collection<Integer> getNetworkCapabilities() {
    public Collection<Integer> getNetworkCapabilities() {
        return enumerateBits(mNetworkCapabilities);
        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) {
    private Collection<Integer> enumerateBits(long val) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        ArrayList<Integer> result = new ArrayList<Integer>();
@@ -142,6 +149,12 @@ public final class NetworkCapabilities implements Parcelable {
    public Collection<Integer> getTransportTypes() {
    public Collection<Integer> getTransportTypes() {
        return enumerateBits(mTransportTypes);
        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) {
    private void combineTransportTypes(NetworkCapabilities nc) {
        this.mTransportTypes |= nc.mTransportTypes;
        this.mTransportTypes |= nc.mTransportTypes;
@@ -205,7 +218,8 @@ public final class NetworkCapabilities implements Parcelable {
     * {@hide}
     * {@hide}
     */
     */
    public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) {
    public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) {
        return (satisfiedByNetCapabilities(nc) &&
        return (nc != null &&
                satisfiedByNetCapabilities(nc) &&
                satisfiedByTransportTypes(nc) &&
                satisfiedByTransportTypes(nc) &&
                satisfiedByLinkBandwidths(nc));
                satisfiedByLinkBandwidths(nc));
    }
    }