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

Commit 30b2ac71 authored by Aaron Huang's avatar Aaron Huang Committed by Gerrit Code Review
Browse files

Merge "Expose NetworkCapabilities methods to system/public APIs"

parents 47fbf0aa e6b62391
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -29011,14 +29011,25 @@ package android.net {
  }
  public final class NetworkCapabilities implements android.os.Parcelable {
    ctor public NetworkCapabilities();
    ctor public NetworkCapabilities(android.net.NetworkCapabilities);
    method @NonNull public android.net.NetworkCapabilities addCapability(int);
    method @NonNull public android.net.NetworkCapabilities addTransportType(int);
    method public void clearAll();
    method public int describeContents();
    method public int getLinkDownstreamBandwidthKbps();
    method public int getLinkUpstreamBandwidthKbps();
    method @Nullable public android.net.NetworkSpecifier getNetworkSpecifier();
    method public int getSignalStrength();
    method @Nullable public android.net.TransportInfo getTransportInfo();
    method public boolean hasCapability(int);
    method public boolean hasTransport(int);
    method @NonNull public android.net.NetworkCapabilities removeCapability(int);
    method @NonNull public android.net.NetworkCapabilities setCapability(int, boolean);
    method @NonNull public android.net.NetworkCapabilities setLinkDownstreamBandwidthKbps(int);
    method @NonNull public android.net.NetworkCapabilities setLinkUpstreamBandwidthKbps(int);
    method @NonNull public android.net.NetworkCapabilities setNetworkSpecifier(@NonNull android.net.NetworkSpecifier);
    method @NonNull public android.net.NetworkCapabilities setSignalStrength(int);
    method public void writeToParcel(android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkCapabilities> CREATOR;
    field public static final int NET_CAPABILITY_CAPTIVE_PORTAL = 17; // 0x11
+2 −0
Original line number Diff line number Diff line
@@ -4366,6 +4366,8 @@ package android.net {
  public final class NetworkCapabilities implements android.os.Parcelable {
    method @NonNull public int[] getTransportTypes();
    method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
    method @NonNull public android.net.NetworkCapabilities setSSID(@Nullable String);
    method @NonNull public android.net.NetworkCapabilities setTransportInfo(@NonNull android.net.TransportInfo);
    field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16
    field public static final int NET_CAPABILITY_PARTIAL_CONNECTIVITY = 24; // 0x18
  }
+11 −27
Original line number Diff line number Diff line
@@ -60,10 +60,6 @@ public final class NetworkCapabilities implements Parcelable {
    // Set to true when private DNS is broken.
    private boolean mPrivateDnsBroken;

    /**
     * @hide
     */
    @UnsupportedAppUsage
    public NetworkCapabilities() {
        clearAll();
        mNetworkCapabilities = DEFAULT_CAPABILITIES;
@@ -78,7 +74,6 @@ public final class NetworkCapabilities implements Parcelable {
    /**
     * Completely clears the contents of this object, removing even the capabilities that are set
     * by default when the object is constructed.
     * @hide
     */
    public void clearAll() {
        mNetworkCapabilities = mTransportTypes = mUnwantedNetworkCapabilities = 0;
@@ -402,16 +397,15 @@ public final class NetworkCapabilities implements Parcelable {
     * Adds the given capability to this {@code NetworkCapability} instance.
     * Multiple capabilities may be applied sequentially.  Note that when searching
     * for a network to satisfy a request, all capabilities requested must be satisfied.
     * <p>
     * If the given capability was previously added to the list of unwanted capabilities
     * then the capability will also be removed from the list of unwanted capabilities.
     *
     * @param capability the capability to be added.
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @hide
     */
    @UnsupportedAppUsage
    public @NonNull NetworkCapabilities addCapability(@NetCapability int capability) {
        // If the given capability was previously added to the list of unwanted capabilities
        // then the capability will also be removed from the list of unwanted capabilities.
        // TODO: Consider adding unwanted capabilities to the public API and mention this
        // in the documentation.
        checkValidCapability(capability);
        mNetworkCapabilities |= 1 << capability;
        mUnwantedNetworkCapabilities &= ~(1 << capability);  // remove from unwanted capability list
@@ -439,16 +433,13 @@ public final class NetworkCapabilities implements Parcelable {

    /**
     * Removes (if found) the given capability from this {@code NetworkCapability} instance.
     * <p>
     * Note that this method removes capabilities that were added via {@link #addCapability(int)},
     * {@link #addUnwantedCapability(int)} or {@link #setCapabilities(int[], int[])} .
     *
     * @param capability the capability to be removed.
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @hide
     */
    @UnsupportedAppUsage
    public @NonNull NetworkCapabilities removeCapability(@NetCapability int capability) {
        // Note that this method removes capabilities that were added via addCapability(int),
        // addUnwantedCapability(int) or setCapabilities(int[], int[]).
        checkValidCapability(capability);
        final long mask = ~(1 << capability);
        mNetworkCapabilities &= mask;
@@ -460,7 +451,6 @@ public final class NetworkCapabilities implements Parcelable {
     * Sets (or clears) the given capability on this {@link NetworkCapabilities}
     * instance.
     *
     * @hide
     */
    public @NonNull NetworkCapabilities setCapability(@NetCapability int capability,
            boolean value) {
@@ -722,9 +712,7 @@ public final class NetworkCapabilities implements Parcelable {
     *
     * @param transportType the transport type to be added.
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @hide
     */
    @UnsupportedAppUsage
    public @NonNull NetworkCapabilities addTransportType(@Transport int transportType) {
        checkValidTransportType(transportType);
        mTransportTypes |= 1 << transportType;
@@ -863,7 +851,6 @@ public final class NetworkCapabilities implements Parcelable {
     * fast backhauls and slow backhauls.
     *
     * @param upKbps the estimated first hop upstream (device to network) bandwidth.
     * @hide
     */
    public @NonNull NetworkCapabilities setLinkUpstreamBandwidthKbps(int upKbps) {
        mLinkUpBandwidthKbps = upKbps;
@@ -893,7 +880,6 @@ public final class NetworkCapabilities implements Parcelable {
     * fast backhauls and slow backhauls.
     *
     * @param downKbps the estimated first hop downstream (network to device) bandwidth.
     * @hide
     */
    public @NonNull NetworkCapabilities setLinkDownstreamBandwidthKbps(int downKbps) {
        mLinkDownBandwidthKbps = downKbps;
@@ -952,9 +938,9 @@ public final class NetworkCapabilities implements Parcelable {
     * @param networkSpecifier A concrete, parcelable framework class that extends
     *                         NetworkSpecifier.
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @hide
     */
    public @NonNull NetworkCapabilities setNetworkSpecifier(NetworkSpecifier networkSpecifier) {
    public @NonNull NetworkCapabilities setNetworkSpecifier(
            @NonNull NetworkSpecifier networkSpecifier) {
        if (networkSpecifier != null && Long.bitCount(mTransportTypes) != 1) {
            throw new IllegalStateException("Must have a single transport specified to use " +
                    "setNetworkSpecifier");
@@ -973,7 +959,8 @@ public final class NetworkCapabilities implements Parcelable {
     * @return This NetworkCapabilities instance, to facilitate chaining.
     * @hide
     */
    public @NonNull NetworkCapabilities setTransportInfo(TransportInfo transportInfo) {
    @SystemApi
    public @NonNull NetworkCapabilities setTransportInfo(@NonNull TransportInfo transportInfo) {
        mTransportInfo = transportInfo;
        return this;
    }
@@ -983,9 +970,7 @@ public final class NetworkCapabilities implements Parcelable {
     *
     * @return The optional {@link NetworkSpecifier} specifying the bearer specific network
     *         specifier or {@code null}. See {@link #setNetworkSpecifier}.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
    public @Nullable NetworkSpecifier getNetworkSpecifier() {
        return mNetworkSpecifier;
    }
@@ -1054,9 +1039,7 @@ public final class NetworkCapabilities implements Parcelable {
     * effect when requesting a callback.
     *
     * @param signalStrength the bearer-specific signal strength.
     * @hide
     */
    @UnsupportedAppUsage
    public @NonNull NetworkCapabilities setSignalStrength(int signalStrength) {
        mSignalStrength = signalStrength;
        return this;
@@ -1282,6 +1265,7 @@ public final class NetworkCapabilities implements Parcelable {
     * Sets the SSID of this network.
     * @hide
     */
    @SystemApi
    public @NonNull NetworkCapabilities setSSID(@Nullable String ssid) {
        mSSID = ssid;
        return this;