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

Commit fd653dee authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Android (Google) Code Review
Browse files

Merge "Rename unwanted capabilities to forbidden capabilities." into sc-dev

parents d5c7dc04 c7bbe93a
Loading
Loading
Loading
Loading
+8 −8
Original line number Original line Diff line number Diff line
@@ -554,7 +554,7 @@ public final class JobStore {
                out.attribute(null, "net-capabilities", Long.toString(
                out.attribute(null, "net-capabilities", Long.toString(
                        BitUtils.packBits(network.getCapabilities())));
                        BitUtils.packBits(network.getCapabilities())));
                out.attribute(null, "net-unwanted-capabilities", Long.toString(
                out.attribute(null, "net-unwanted-capabilities", Long.toString(
                        BitUtils.packBits(network.getUnwantedCapabilities())));
                        BitUtils.packBits(network.getForbiddenCapabilities())));


                out.attribute(null, "net-transport-types", Long.toString(
                out.attribute(null, "net-transport-types", Long.toString(
                        BitUtils.packBits(network.getTransportTypes())));
                        BitUtils.packBits(network.getTransportTypes())));
@@ -977,22 +977,22 @@ public final class JobStore {
            String val;
            String val;


            final String netCapabilities = parser.getAttributeValue(null, "net-capabilities");
            final String netCapabilities = parser.getAttributeValue(null, "net-capabilities");
            final String netUnwantedCapabilities = parser.getAttributeValue(
            final String netforbiddenCapabilities = parser.getAttributeValue(
                    null, "net-unwanted-capabilities");
                    null, "net-unwanted-capabilities");
            final String netTransportTypes = parser.getAttributeValue(null, "net-transport-types");
            final String netTransportTypes = parser.getAttributeValue(null, "net-transport-types");
            if (netCapabilities != null && netTransportTypes != null) {
            if (netCapabilities != null && netTransportTypes != null) {
                final NetworkRequest.Builder builder = new NetworkRequest.Builder()
                final NetworkRequest.Builder builder = new NetworkRequest.Builder()
                        .clearCapabilities();
                        .clearCapabilities();
                final long unwantedCapabilities = netUnwantedCapabilities != null
                final long forbiddenCapabilities = netforbiddenCapabilities != null
                        ? Long.parseLong(netUnwantedCapabilities)
                        ? Long.parseLong(netforbiddenCapabilities)
                        : BitUtils.packBits(builder.build().getUnwantedCapabilities());
                        : BitUtils.packBits(builder.build().getForbiddenCapabilities());
                // We're okay throwing NFE here; caught by caller
                // We're okay throwing NFE here; caught by caller
                for (int capability : BitUtils.unpackBits(Long.parseLong(netCapabilities))) {
                for (int capability : BitUtils.unpackBits(Long.parseLong(netCapabilities))) {
                    builder.addCapability(capability);
                    builder.addCapability(capability);
                }
                }
                for (int unwantedCapability : BitUtils.unpackBits(
                for (int forbiddenCapability : BitUtils.unpackBits(
                        Long.parseLong(netUnwantedCapabilities))) {
                        Long.parseLong(netforbiddenCapabilities))) {
                    builder.addUnwantedCapability(unwantedCapability);
                    builder.addForbiddenCapability(forbiddenCapability);
                }
                }
                for (int transport : BitUtils.unpackBits(Long.parseLong(netTransportTypes))) {
                for (int transport : BitUtils.unpackBits(Long.parseLong(netTransportTypes))) {
                    builder.addTransportType(transport);
                    builder.addTransportType(transport);
+5 −5
Original line number Original line Diff line number Diff line
@@ -109,7 +109,7 @@ package android.net {


  public final class NetworkCapabilities implements android.os.Parcelable {
  public final class NetworkCapabilities implements android.os.Parcelable {
    method @Nullable public java.util.Set<android.util.Range<java.lang.Integer>> getUids();
    method @Nullable public java.util.Set<android.util.Range<java.lang.Integer>> getUids();
    method public boolean hasUnwantedCapability(int);
    method public boolean hasForbiddenCapability(int);
    field public static final long REDACT_ALL = -1L; // 0xffffffffffffffffL
    field public static final long REDACT_ALL = -1L; // 0xffffffffffffffffL
    field public static final long REDACT_FOR_ACCESS_FINE_LOCATION = 1L; // 0x1L
    field public static final long REDACT_FOR_ACCESS_FINE_LOCATION = 1L; // 0x1L
    field public static final long REDACT_FOR_LOCAL_MAC_ADDRESS = 2L; // 0x2L
    field public static final long REDACT_FOR_LOCAL_MAC_ADDRESS = 2L; // 0x2L
@@ -123,13 +123,13 @@ package android.net {
  }
  }


  public class NetworkRequest implements android.os.Parcelable {
  public class NetworkRequest implements android.os.Parcelable {
    method @NonNull public int[] getUnwantedCapabilities();
    method @NonNull public int[] getForbiddenCapabilities();
    method public boolean hasUnwantedCapability(int);
    method public boolean hasForbiddenCapability(int);
  }
  }


  public static class NetworkRequest.Builder {
  public static class NetworkRequest.Builder {
    method @NonNull public android.net.NetworkRequest.Builder addUnwantedCapability(int);
    method @NonNull public android.net.NetworkRequest.Builder addForbiddenCapability(int);
    method @NonNull public android.net.NetworkRequest.Builder removeUnwantedCapability(int);
    method @NonNull public android.net.NetworkRequest.Builder removeForbiddenCapability(int);
    method @NonNull public android.net.NetworkRequest.Builder setUids(@Nullable java.util.Set<android.util.Range<java.lang.Integer>>);
    method @NonNull public android.net.NetworkRequest.Builder setUids(@Nullable java.util.Set<android.util.Range<java.lang.Integer>>);
  }
  }


+46 −46
Original line number Original line Diff line number Diff line
@@ -183,7 +183,7 @@ public final class NetworkCapabilities implements Parcelable {
            throw new UnsupportedOperationException(
            throw new UnsupportedOperationException(
                    "Cannot clear NetworkCapabilities when mRedactions is set");
                    "Cannot clear NetworkCapabilities when mRedactions is set");
        }
        }
        mNetworkCapabilities = mTransportTypes = mUnwantedNetworkCapabilities = 0;
        mNetworkCapabilities = mTransportTypes = mForbiddenNetworkCapabilities = 0;
        mLinkUpBandwidthKbps = mLinkDownBandwidthKbps = LINK_BANDWIDTH_UNSPECIFIED;
        mLinkUpBandwidthKbps = mLinkDownBandwidthKbps = LINK_BANDWIDTH_UNSPECIFIED;
        mNetworkSpecifier = null;
        mNetworkSpecifier = null;
        mTransportInfo = null;
        mTransportInfo = null;
@@ -219,7 +219,7 @@ public final class NetworkCapabilities implements Parcelable {
        mUids = (nc.mUids == null) ? null : new ArraySet<>(nc.mUids);
        mUids = (nc.mUids == null) ? null : new ArraySet<>(nc.mUids);
        setAdministratorUids(nc.getAdministratorUids());
        setAdministratorUids(nc.getAdministratorUids());
        mOwnerUid = nc.mOwnerUid;
        mOwnerUid = nc.mOwnerUid;
        mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities;
        mForbiddenNetworkCapabilities = nc.mForbiddenNetworkCapabilities;
        mSSID = nc.mSSID;
        mSSID = nc.mSSID;
        mPrivateDnsBroken = nc.mPrivateDnsBroken;
        mPrivateDnsBroken = nc.mPrivateDnsBroken;
        mRequestorUid = nc.mRequestorUid;
        mRequestorUid = nc.mRequestorUid;
@@ -237,7 +237,7 @@ public final class NetworkCapabilities implements Parcelable {
    /**
    /**
     * If any capabilities specified here they must not exist in the matching Network.
     * If any capabilities specified here they must not exist in the matching Network.
     */
     */
    private long mUnwantedNetworkCapabilities;
    private long mForbiddenNetworkCapabilities;


    /** @hide */
    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
@@ -595,21 +595,21 @@ public final class NetworkCapabilities implements Parcelable {
     * @hide
     * @hide
     */
     */
    public @NonNull NetworkCapabilities addCapability(@NetCapability int capability) {
    public @NonNull NetworkCapabilities addCapability(@NetCapability int capability) {
        // If the given capability was previously added to the list of unwanted capabilities
        // If the given capability was previously added to the list of forbidden capabilities
        // then the capability will also be removed from the list of unwanted capabilities.
        // then the capability will also be removed from the list of forbidden capabilities.
        // TODO: Consider adding unwanted capabilities to the public API and mention this
        // TODO: Consider adding forbidden capabilities to the public API and mention this
        // in the documentation.
        // in the documentation.
        checkValidCapability(capability);
        checkValidCapability(capability);
        mNetworkCapabilities |= 1L << capability;
        mNetworkCapabilities |= 1L << capability;
        // remove from unwanted capability list
        // remove from forbidden capability list
        mUnwantedNetworkCapabilities &= ~(1L << capability);
        mForbiddenNetworkCapabilities &= ~(1L << capability);
        return this;
        return this;
    }
    }


    /**
    /**
     * Adds the given capability to the list of unwanted capabilities of this
     * Adds the given capability to the list of forbidden capabilities of this
     * {@code NetworkCapability} instance. Note that when searching for a network to
     * {@code NetworkCapability} instance. Note that when searching for a network to
     * satisfy a request, the network must not contain any capability from unwanted capability
     * satisfy a request, the network must not contain any capability from forbidden capability
     * list.
     * list.
     * <p>
     * <p>
     * If the capability was previously added to the list of required capabilities (for
     * If the capability was previously added to the list of required capabilities (for
@@ -619,9 +619,9 @@ public final class NetworkCapabilities implements Parcelable {
     * @see #addCapability(int)
     * @see #addCapability(int)
     * @hide
     * @hide
     */
     */
    public void addUnwantedCapability(@NetCapability int capability) {
    public void addForbiddenCapability(@NetCapability int capability) {
        checkValidCapability(capability);
        checkValidCapability(capability);
        mUnwantedNetworkCapabilities |= 1L << capability;
        mForbiddenNetworkCapabilities |= 1L << capability;
        mNetworkCapabilities &= ~(1L << capability);  // remove from requested capabilities
        mNetworkCapabilities &= ~(1L << capability);  // remove from requested capabilities
    }
    }


@@ -641,16 +641,16 @@ public final class NetworkCapabilities implements Parcelable {
    }
    }


    /**
    /**
     * Removes (if found) the given unwanted capability from this {@code NetworkCapability}
     * Removes (if found) the given forbidden capability from this {@code NetworkCapability}
     * instance that were added via addUnwantedCapability(int) or setCapabilities(int[], int[]).
     * instance that were added via addForbiddenCapability(int) or setCapabilities(int[], int[]).
     *
     *
     * @param capability the capability to be removed.
     * @param capability the capability to be removed.
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @hide
     * @hide
     */
     */
    public @NonNull NetworkCapabilities removeUnwantedCapability(@NetCapability int capability) {
    public @NonNull NetworkCapabilities removeForbiddenCapability(@NetCapability int capability) {
        checkValidCapability(capability);
        checkValidCapability(capability);
        mUnwantedNetworkCapabilities &= ~(1L << capability);
        mForbiddenNetworkCapabilities &= ~(1L << capability);
        return this;
        return this;
    }
    }


@@ -679,13 +679,13 @@ public final class NetworkCapabilities implements Parcelable {
    }
    }


    /**
    /**
     * Gets all the unwanted capabilities set on this {@code NetworkCapability} instance.
     * Gets all the forbidden capabilities set on this {@code NetworkCapability} instance.
     *
     *
     * @return an array of unwanted capability values for this instance.
     * @return an array of forbidden capability values for this instance.
     * @hide
     * @hide
     */
     */
    public @NetCapability int[] getUnwantedCapabilities() {
    public @NetCapability int[] getForbiddenCapabilities() {
        return NetworkCapabilitiesUtils.unpackBits(mUnwantedNetworkCapabilities);
        return NetworkCapabilitiesUtils.unpackBits(mForbiddenNetworkCapabilities);
    }
    }




@@ -696,9 +696,9 @@ public final class NetworkCapabilities implements Parcelable {
     * @hide
     * @hide
     */
     */
    public void setCapabilities(@NetCapability int[] capabilities,
    public void setCapabilities(@NetCapability int[] capabilities,
            @NetCapability int[] unwantedCapabilities) {
            @NetCapability int[] forbiddenCapabilities) {
        mNetworkCapabilities = NetworkCapabilitiesUtils.packBits(capabilities);
        mNetworkCapabilities = NetworkCapabilitiesUtils.packBits(capabilities);
        mUnwantedNetworkCapabilities = NetworkCapabilitiesUtils.packBits(unwantedCapabilities);
        mForbiddenNetworkCapabilities = NetworkCapabilitiesUtils.packBits(forbiddenCapabilities);
    }
    }


    /**
    /**
@@ -723,9 +723,9 @@ public final class NetworkCapabilities implements Parcelable {


    /** @hide */
    /** @hide */
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    public boolean hasUnwantedCapability(@NetCapability int capability) {
    public boolean hasForbiddenCapability(@NetCapability int capability) {
        return isValidCapability(capability)
        return isValidCapability(capability)
                && ((mUnwantedNetworkCapabilities & (1L << capability)) != 0);
                && ((mForbiddenNetworkCapabilities & (1L << capability)) != 0);
    }
    }


    /**
    /**
@@ -755,14 +755,14 @@ public final class NetworkCapabilities implements Parcelable {


    private void combineNetCapabilities(@NonNull NetworkCapabilities nc) {
    private void combineNetCapabilities(@NonNull NetworkCapabilities nc) {
        final long wantedCaps = this.mNetworkCapabilities | nc.mNetworkCapabilities;
        final long wantedCaps = this.mNetworkCapabilities | nc.mNetworkCapabilities;
        final long unwantedCaps =
        final long forbiddenCaps =
                this.mUnwantedNetworkCapabilities | nc.mUnwantedNetworkCapabilities;
                this.mForbiddenNetworkCapabilities | nc.mForbiddenNetworkCapabilities;
        if ((wantedCaps & unwantedCaps) != 0) {
        if ((wantedCaps & forbiddenCaps) != 0) {
            throw new IllegalArgumentException(
            throw new IllegalArgumentException(
                    "Cannot have the same capability in wanted and unwanted lists.");
                    "Cannot have the same capability in wanted and forbidden lists.");
        }
        }
        this.mNetworkCapabilities = wantedCaps;
        this.mNetworkCapabilities = wantedCaps;
        this.mUnwantedNetworkCapabilities = unwantedCaps;
        this.mForbiddenNetworkCapabilities = forbiddenCaps;
    }
    }


    /**
    /**
@@ -773,7 +773,7 @@ public final class NetworkCapabilities implements Parcelable {
     * @hide
     * @hide
     */
     */
    public @Nullable String describeFirstNonRequestableCapability() {
    public @Nullable String describeFirstNonRequestableCapability() {
        final long nonRequestable = (mNetworkCapabilities | mUnwantedNetworkCapabilities)
        final long nonRequestable = (mNetworkCapabilities | mForbiddenNetworkCapabilities)
                & NON_REQUESTABLE_CAPABILITIES;
                & NON_REQUESTABLE_CAPABILITIES;


        if (nonRequestable != 0) {
        if (nonRequestable != 0) {
@@ -790,28 +790,28 @@ public final class NetworkCapabilities implements Parcelable {
    private boolean satisfiedByNetCapabilities(@NonNull NetworkCapabilities nc,
    private boolean satisfiedByNetCapabilities(@NonNull NetworkCapabilities nc,
            boolean onlyImmutable) {
            boolean onlyImmutable) {
        long requestedCapabilities = mNetworkCapabilities;
        long requestedCapabilities = mNetworkCapabilities;
        long requestedUnwantedCapabilities = mUnwantedNetworkCapabilities;
        long requestedForbiddenCapabilities = mForbiddenNetworkCapabilities;
        long providedCapabilities = nc.mNetworkCapabilities;
        long providedCapabilities = nc.mNetworkCapabilities;


        if (onlyImmutable) {
        if (onlyImmutable) {
            requestedCapabilities &= ~MUTABLE_CAPABILITIES;
            requestedCapabilities &= ~MUTABLE_CAPABILITIES;
            requestedUnwantedCapabilities &= ~MUTABLE_CAPABILITIES;
            requestedForbiddenCapabilities &= ~MUTABLE_CAPABILITIES;
        }
        }
        return ((providedCapabilities & requestedCapabilities) == requestedCapabilities)
        return ((providedCapabilities & requestedCapabilities) == requestedCapabilities)
                && ((requestedUnwantedCapabilities & providedCapabilities) == 0);
                && ((requestedForbiddenCapabilities & providedCapabilities) == 0);
    }
    }


    /** @hide */
    /** @hide */
    public boolean equalsNetCapabilities(@NonNull NetworkCapabilities nc) {
    public boolean equalsNetCapabilities(@NonNull NetworkCapabilities nc) {
        return (nc.mNetworkCapabilities == this.mNetworkCapabilities)
        return (nc.mNetworkCapabilities == this.mNetworkCapabilities)
                && (nc.mUnwantedNetworkCapabilities == this.mUnwantedNetworkCapabilities);
                && (nc.mForbiddenNetworkCapabilities == this.mForbiddenNetworkCapabilities);
    }
    }


    private boolean equalsNetCapabilitiesRequestable(@NonNull NetworkCapabilities that) {
    private boolean equalsNetCapabilitiesRequestable(@NonNull NetworkCapabilities that) {
        return ((this.mNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES) ==
        return ((this.mNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES)
                (that.mNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES))
                == (that.mNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES))
                && ((this.mUnwantedNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES) ==
                && ((this.mForbiddenNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES)
                (that.mUnwantedNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES));
                == (that.mForbiddenNetworkCapabilities & ~NON_REQUESTABLE_CAPABILITIES));
    }
    }


    /**
    /**
@@ -1734,7 +1734,7 @@ public final class NetworkCapabilities implements Parcelable {
     * Combine a set of Capabilities to this one.  Useful for coming up with the complete set.
     * Combine a set of Capabilities to this one.  Useful for coming up with the complete set.
     * <p>
     * <p>
     * Note that this method may break an invariant of having a particular capability in either
     * Note that this method may break an invariant of having a particular capability in either
     * wanted or unwanted lists but never in both.  Requests that have the same capability in
     * wanted or forbidden lists but never in both.  Requests that have the same capability in
     * both lists will never be satisfied.
     * both lists will never be satisfied.
     * @hide
     * @hide
     */
     */
@@ -1875,8 +1875,8 @@ public final class NetworkCapabilities implements Parcelable {
    public int hashCode() {
    public int hashCode() {
        return (int) (mNetworkCapabilities & 0xFFFFFFFF)
        return (int) (mNetworkCapabilities & 0xFFFFFFFF)
                + ((int) (mNetworkCapabilities >> 32) * 3)
                + ((int) (mNetworkCapabilities >> 32) * 3)
                + ((int) (mUnwantedNetworkCapabilities & 0xFFFFFFFF) * 5)
                + ((int) (mForbiddenNetworkCapabilities & 0xFFFFFFFF) * 5)
                + ((int) (mUnwantedNetworkCapabilities >> 32) * 7)
                + ((int) (mForbiddenNetworkCapabilities >> 32) * 7)
                + ((int) (mTransportTypes & 0xFFFFFFFF) * 11)
                + ((int) (mTransportTypes & 0xFFFFFFFF) * 11)
                + ((int) (mTransportTypes >> 32) * 13)
                + ((int) (mTransportTypes >> 32) * 13)
                + mLinkUpBandwidthKbps * 17
                + mLinkUpBandwidthKbps * 17
@@ -1911,7 +1911,7 @@ public final class NetworkCapabilities implements Parcelable {
    @Override
    @Override
    public void writeToParcel(Parcel dest, int flags) {
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeLong(mNetworkCapabilities);
        dest.writeLong(mNetworkCapabilities);
        dest.writeLong(mUnwantedNetworkCapabilities);
        dest.writeLong(mForbiddenNetworkCapabilities);
        dest.writeLong(mTransportTypes);
        dest.writeLong(mTransportTypes);
        dest.writeInt(mLinkUpBandwidthKbps);
        dest.writeInt(mLinkUpBandwidthKbps);
        dest.writeInt(mLinkDownBandwidthKbps);
        dest.writeInt(mLinkDownBandwidthKbps);
@@ -1935,7 +1935,7 @@ public final class NetworkCapabilities implements Parcelable {
                NetworkCapabilities netCap = new NetworkCapabilities();
                NetworkCapabilities netCap = new NetworkCapabilities();


                netCap.mNetworkCapabilities = in.readLong();
                netCap.mNetworkCapabilities = in.readLong();
                netCap.mUnwantedNetworkCapabilities = in.readLong();
                netCap.mForbiddenNetworkCapabilities = in.readLong();
                netCap.mTransportTypes = in.readLong();
                netCap.mTransportTypes = in.readLong();
                netCap.mLinkUpBandwidthKbps = in.readInt();
                netCap.mLinkUpBandwidthKbps = in.readInt();
                netCap.mLinkDownBandwidthKbps = in.readInt();
                netCap.mLinkDownBandwidthKbps = in.readInt();
@@ -1989,9 +1989,9 @@ public final class NetworkCapabilities implements Parcelable {
            appendStringRepresentationOfBitMaskToStringBuilder(sb, mNetworkCapabilities,
            appendStringRepresentationOfBitMaskToStringBuilder(sb, mNetworkCapabilities,
                    NetworkCapabilities::capabilityNameOf, "&");
                    NetworkCapabilities::capabilityNameOf, "&");
        }
        }
        if (0 != mUnwantedNetworkCapabilities) {
        if (0 != mForbiddenNetworkCapabilities) {
            sb.append(" Unwanted: ");
            sb.append(" Forbidden: ");
            appendStringRepresentationOfBitMaskToStringBuilder(sb, mUnwantedNetworkCapabilities,
            appendStringRepresentationOfBitMaskToStringBuilder(sb, mForbiddenNetworkCapabilities,
                    NetworkCapabilities::capabilityNameOf, "&");
                    NetworkCapabilities::capabilityNameOf, "&");
        }
        }
        if (mLinkUpBandwidthKbps > 0) {
        if (mLinkUpBandwidthKbps > 0) {
+16 −15
Original line number Original line Diff line number Diff line
@@ -311,7 +311,7 @@ public class NetworkRequest implements Parcelable {
         *
         *
         * @see #addCapability(int)
         * @see #addCapability(int)
         *
         *
         * @param capability The capability to add to unwanted capability list.
         * @param capability The capability to add to forbidden capability list.
         * @return The builder to facilitate chaining.
         * @return The builder to facilitate chaining.
         *
         *
         * @hide
         * @hide
@@ -319,15 +319,15 @@ public class NetworkRequest implements Parcelable {
        @NonNull
        @NonNull
        @SuppressLint("MissingGetterMatchingBuilder")
        @SuppressLint("MissingGetterMatchingBuilder")
        @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
        @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
        public Builder addUnwantedCapability(@NetworkCapabilities.NetCapability int capability) {
        public Builder addForbiddenCapability(@NetworkCapabilities.NetCapability int capability) {
            mNetworkCapabilities.addUnwantedCapability(capability);
            mNetworkCapabilities.addForbiddenCapability(capability);
            return this;
            return this;
        }
        }


        /**
        /**
         * Removes (if found) the given unwanted capability from this builder instance.
         * Removes (if found) the given forbidden capability from this builder instance.
         *
         *
         * @param capability The unwanted capability to remove.
         * @param capability The forbidden capability to remove.
         * @return The builder to facilitate chaining.
         * @return The builder to facilitate chaining.
         *
         *
         * @hide
         * @hide
@@ -335,8 +335,9 @@ public class NetworkRequest implements Parcelable {
        @NonNull
        @NonNull
        @SuppressLint("BuilderSetStyle")
        @SuppressLint("BuilderSetStyle")
        @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
        @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
        public Builder removeUnwantedCapability(@NetworkCapabilities.NetCapability int capability) {
        public Builder removeForbiddenCapability(
            mNetworkCapabilities.removeUnwantedCapability(capability);
                @NetworkCapabilities.NetCapability int capability) {
            mNetworkCapabilities.removeForbiddenCapability(capability);
            return this;
            return this;
        }
        }


@@ -598,13 +599,13 @@ public class NetworkRequest implements Parcelable {
    }
    }


    /**
    /**
     * @see Builder#addUnwantedCapability(int)
     * @see Builder#addForbiddenCapability(int)
     *
     *
     * @hide
     * @hide
     */
     */
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    public boolean hasUnwantedCapability(@NetCapability int capability) {
    public boolean hasForbiddenCapability(@NetCapability int capability) {
        return networkCapabilities.hasUnwantedCapability(capability);
        return networkCapabilities.hasForbiddenCapability(capability);
    }
    }


    /**
    /**
@@ -690,18 +691,18 @@ public class NetworkRequest implements Parcelable {
    }
    }


    /**
    /**
     * Gets all the unwanted capabilities set on this {@code NetworkRequest} instance.
     * Gets all the forbidden capabilities set on this {@code NetworkRequest} instance.
     *
     *
     * @return an array of unwanted capability values for this instance.
     * @return an array of forbidden capability values for this instance.
     *
     *
     * @hide
     * @hide
     */
     */
    @NonNull
    @NonNull
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    public @NetCapability int[] getUnwantedCapabilities() {
    public @NetCapability int[] getForbiddenCapabilities() {
        // No need to make a defensive copy here as NC#getUnwantedCapabilities() already returns
        // No need to make a defensive copy here as NC#getForbiddenCapabilities() already returns
        // a new array.
        // a new array.
        return networkCapabilities.getUnwantedCapabilities();
        return networkCapabilities.getForbiddenCapabilities();
    }
    }


    /**
    /**
+1 −1
Original line number Original line Diff line number Diff line
@@ -374,7 +374,7 @@ public class JobStoreTest {
                .setPersisted(true)
                .setPersisted(true)
                .setRequiredNetwork(new NetworkRequest.Builder()
                .setRequiredNetwork(new NetworkRequest.Builder()
                        .addCapability(NET_CAPABILITY_IMS)
                        .addCapability(NET_CAPABILITY_IMS)
                        .addUnwantedCapability(NET_CAPABILITY_OEM_PAID)
                        .addForbiddenCapability(NET_CAPABILITY_OEM_PAID)
                        .build())
                        .build())
                .build());
                .build());
    }
    }
Loading