Merge "Expose NetworkCapabilities methods to system/public APIs" am: 9290dc1179 am: 5d77a84faf
Change-Id: Id97144cf1421f5256748a196df37f58ffd006859
This commit is contained in:
@@ -60,10 +60,6 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
// Set to true when private DNS is broken.
|
// Set to true when private DNS is broken.
|
||||||
private boolean mPrivateDnsBroken;
|
private boolean mPrivateDnsBroken;
|
||||||
|
|
||||||
/**
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
@UnsupportedAppUsage
|
|
||||||
public NetworkCapabilities() {
|
public NetworkCapabilities() {
|
||||||
clearAll();
|
clearAll();
|
||||||
mNetworkCapabilities = DEFAULT_CAPABILITIES;
|
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
|
* Completely clears the contents of this object, removing even the capabilities that are set
|
||||||
* by default when the object is constructed.
|
* by default when the object is constructed.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
public void clearAll() {
|
public void clearAll() {
|
||||||
mNetworkCapabilities = mTransportTypes = mUnwantedNetworkCapabilities = 0;
|
mNetworkCapabilities = mTransportTypes = mUnwantedNetworkCapabilities = 0;
|
||||||
@@ -402,16 +397,15 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* Adds the given capability to this {@code NetworkCapability} instance.
|
* Adds the given capability to this {@code NetworkCapability} instance.
|
||||||
* Multiple capabilities may be applied sequentially. Note that when searching
|
* Multiple capabilities may be applied sequentially. Note that when searching
|
||||||
* for a network to satisfy a request, all capabilities requested must be satisfied.
|
* 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.
|
* @param capability the capability to be added.
|
||||||
* @return This NetworkCapabilities instance, to facilitate chaining.
|
* @return This NetworkCapabilities instance, to facilitate chaining.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage
|
|
||||||
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
|
||||||
|
// 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);
|
checkValidCapability(capability);
|
||||||
mNetworkCapabilities |= 1 << capability;
|
mNetworkCapabilities |= 1 << capability;
|
||||||
mUnwantedNetworkCapabilities &= ~(1 << capability); // remove from unwanted capability list
|
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.
|
* 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.
|
* @param capability the capability to be removed.
|
||||||
* @return This NetworkCapabilities instance, to facilitate chaining.
|
* @return This NetworkCapabilities instance, to facilitate chaining.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage
|
|
||||||
public @NonNull NetworkCapabilities removeCapability(@NetCapability int capability) {
|
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);
|
checkValidCapability(capability);
|
||||||
final long mask = ~(1 << capability);
|
final long mask = ~(1 << capability);
|
||||||
mNetworkCapabilities &= mask;
|
mNetworkCapabilities &= mask;
|
||||||
@@ -460,7 +451,6 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* Sets (or clears) the given capability on this {@link NetworkCapabilities}
|
* Sets (or clears) the given capability on this {@link NetworkCapabilities}
|
||||||
* instance.
|
* instance.
|
||||||
*
|
*
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
public @NonNull NetworkCapabilities setCapability(@NetCapability int capability,
|
public @NonNull NetworkCapabilities setCapability(@NetCapability int capability,
|
||||||
boolean value) {
|
boolean value) {
|
||||||
@@ -722,9 +712,7 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param transportType the transport type to be added.
|
* @param transportType the transport type to be added.
|
||||||
* @return This NetworkCapabilities instance, to facilitate chaining.
|
* @return This NetworkCapabilities instance, to facilitate chaining.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage
|
|
||||||
public @NonNull NetworkCapabilities addTransportType(@Transport int transportType) {
|
public @NonNull NetworkCapabilities addTransportType(@Transport int transportType) {
|
||||||
checkValidTransportType(transportType);
|
checkValidTransportType(transportType);
|
||||||
mTransportTypes |= 1 << transportType;
|
mTransportTypes |= 1 << transportType;
|
||||||
@@ -863,7 +851,6 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* fast backhauls and slow backhauls.
|
* fast backhauls and slow backhauls.
|
||||||
*
|
*
|
||||||
* @param upKbps the estimated first hop upstream (device to network) bandwidth.
|
* @param upKbps the estimated first hop upstream (device to network) bandwidth.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
public @NonNull NetworkCapabilities setLinkUpstreamBandwidthKbps(int upKbps) {
|
public @NonNull NetworkCapabilities setLinkUpstreamBandwidthKbps(int upKbps) {
|
||||||
mLinkUpBandwidthKbps = upKbps;
|
mLinkUpBandwidthKbps = upKbps;
|
||||||
@@ -893,7 +880,6 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* fast backhauls and slow backhauls.
|
* fast backhauls and slow backhauls.
|
||||||
*
|
*
|
||||||
* @param downKbps the estimated first hop downstream (network to device) bandwidth.
|
* @param downKbps the estimated first hop downstream (network to device) bandwidth.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
public @NonNull NetworkCapabilities setLinkDownstreamBandwidthKbps(int downKbps) {
|
public @NonNull NetworkCapabilities setLinkDownstreamBandwidthKbps(int downKbps) {
|
||||||
mLinkDownBandwidthKbps = downKbps;
|
mLinkDownBandwidthKbps = downKbps;
|
||||||
@@ -952,9 +938,9 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* @param networkSpecifier A concrete, parcelable framework class that extends
|
* @param networkSpecifier A concrete, parcelable framework class that extends
|
||||||
* NetworkSpecifier.
|
* NetworkSpecifier.
|
||||||
* @return This NetworkCapabilities instance, to facilitate chaining.
|
* @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) {
|
if (networkSpecifier != null && Long.bitCount(mTransportTypes) != 1) {
|
||||||
throw new IllegalStateException("Must have a single transport specified to use " +
|
throw new IllegalStateException("Must have a single transport specified to use " +
|
||||||
"setNetworkSpecifier");
|
"setNetworkSpecifier");
|
||||||
@@ -973,7 +959,8 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* @return This NetworkCapabilities instance, to facilitate chaining.
|
* @return This NetworkCapabilities instance, to facilitate chaining.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public @NonNull NetworkCapabilities setTransportInfo(TransportInfo transportInfo) {
|
@SystemApi
|
||||||
|
public @NonNull NetworkCapabilities setTransportInfo(@NonNull TransportInfo transportInfo) {
|
||||||
mTransportInfo = transportInfo;
|
mTransportInfo = transportInfo;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -983,9 +970,7 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @return The optional {@link NetworkSpecifier} specifying the bearer specific network
|
* @return The optional {@link NetworkSpecifier} specifying the bearer specific network
|
||||||
* specifier or {@code null}. See {@link #setNetworkSpecifier}.
|
* specifier or {@code null}. See {@link #setNetworkSpecifier}.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
|
||||||
public @Nullable NetworkSpecifier getNetworkSpecifier() {
|
public @Nullable NetworkSpecifier getNetworkSpecifier() {
|
||||||
return mNetworkSpecifier;
|
return mNetworkSpecifier;
|
||||||
}
|
}
|
||||||
@@ -1054,9 +1039,7 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* effect when requesting a callback.
|
* effect when requesting a callback.
|
||||||
*
|
*
|
||||||
* @param signalStrength the bearer-specific signal strength.
|
* @param signalStrength the bearer-specific signal strength.
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage
|
|
||||||
public @NonNull NetworkCapabilities setSignalStrength(int signalStrength) {
|
public @NonNull NetworkCapabilities setSignalStrength(int signalStrength) {
|
||||||
mSignalStrength = signalStrength;
|
mSignalStrength = signalStrength;
|
||||||
return this;
|
return this;
|
||||||
@@ -1282,6 +1265,7 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* Sets the SSID of this network.
|
* Sets the SSID of this network.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
public @NonNull NetworkCapabilities setSSID(@Nullable String ssid) {
|
public @NonNull NetworkCapabilities setSSID(@Nullable String ssid) {
|
||||||
mSSID = ssid;
|
mSSID = ssid;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
Reference in New Issue
Block a user