Merge "Fix up NetworkCapabilities' toString"
This commit is contained in:
@@ -1228,34 +1228,68 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
// TODO: enumerate bits for transports and capabilities instead of creating arrays.
|
final StringBuilder sb = new StringBuilder("[");
|
||||||
// TODO: use a StringBuilder instead of string concatenation.
|
if (0 != mTransportTypes) {
|
||||||
int[] types = getTransportTypes();
|
sb.append(" Transports: ");
|
||||||
String transports = (types.length > 0) ? " Transports: " + transportNamesOf(types) : "";
|
appendStringRepresentationOfBitMaskToStringBuilder(sb, mTransportTypes,
|
||||||
|
NetworkCapabilities::transportNameOf, "|");
|
||||||
types = getCapabilities();
|
}
|
||||||
String capabilities = (types.length > 0 ? " Capabilities: " : "");
|
if (0 != mNetworkCapabilities) {
|
||||||
for (int i = 0; i < types.length; ) {
|
sb.append(" Capabilities: ");
|
||||||
capabilities += capabilityNameOf(types[i]);
|
appendStringRepresentationOfBitMaskToStringBuilder(sb, mNetworkCapabilities,
|
||||||
if (++i < types.length) capabilities += "&";
|
NetworkCapabilities::capabilityNameOf, "&");
|
||||||
|
}
|
||||||
|
if (mLinkUpBandwidthKbps > 0) {
|
||||||
|
sb.append(" LinkUpBandwidth>=").append(mLinkUpBandwidthKbps).append("Kbps");
|
||||||
|
}
|
||||||
|
if (mLinkDownBandwidthKbps > 0) {
|
||||||
|
sb.append(" LinkDnBandwidth>=").append(mLinkDownBandwidthKbps).append("Kbps");
|
||||||
|
}
|
||||||
|
if (mNetworkSpecifier != null) {
|
||||||
|
sb.append(" Specifier: <").append(mNetworkSpecifier).append(">");
|
||||||
|
}
|
||||||
|
if (hasSignalStrength()) {
|
||||||
|
sb.append(" SignalStrength: ").append(mSignalStrength);
|
||||||
}
|
}
|
||||||
|
|
||||||
String upBand = ((mLinkUpBandwidthKbps > 0) ? " LinkUpBandwidth>=" +
|
if (null != mUids) {
|
||||||
mLinkUpBandwidthKbps + "Kbps" : "");
|
if ((1 == mUids.size()) && (mUids.valueAt(0).count() == 1)) {
|
||||||
String dnBand = ((mLinkDownBandwidthKbps > 0) ? " LinkDnBandwidth>=" +
|
sb.append(" Uid: ").append(mUids.valueAt(0).start);
|
||||||
mLinkDownBandwidthKbps + "Kbps" : "");
|
} else {
|
||||||
|
sb.append(" Uids: <").append(mUids).append(">");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mEstablishingVpnAppUid != INVALID_UID) {
|
||||||
|
sb.append(" EstablishingAppUid: ").append(mEstablishingVpnAppUid);
|
||||||
|
}
|
||||||
|
|
||||||
String specifier = (mNetworkSpecifier == null ?
|
sb.append("]");
|
||||||
"" : " Specifier: <" + mNetworkSpecifier + ">");
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
String signalStrength = (hasSignalStrength() ? " SignalStrength: " + mSignalStrength : "");
|
|
||||||
|
|
||||||
String uids = (null != mUids ? " Uids: <" + mUids + ">" : "");
|
private interface NameOf {
|
||||||
|
String nameOf(int value);
|
||||||
String establishingAppUid = " EstablishingAppUid: " + mEstablishingVpnAppUid;
|
}
|
||||||
|
/**
|
||||||
return "[" + transports + capabilities + upBand + dnBand + specifier + signalStrength
|
* @hide
|
||||||
+ uids + establishingAppUid + "]";
|
*/
|
||||||
|
public static void appendStringRepresentationOfBitMaskToStringBuilder(StringBuilder sb,
|
||||||
|
long bitMask, NameOf nameFetcher, String separator) {
|
||||||
|
int bitPos = 0;
|
||||||
|
boolean firstElementAdded = false;
|
||||||
|
while (bitMask != 0) {
|
||||||
|
if ((bitMask & 1) != 0) {
|
||||||
|
if (firstElementAdded) {
|
||||||
|
sb.append(separator);
|
||||||
|
} else {
|
||||||
|
firstElementAdded = true;
|
||||||
|
}
|
||||||
|
sb.append(nameFetcher.nameOf(bitPos));
|
||||||
|
}
|
||||||
|
bitMask >>= 1;
|
||||||
|
++bitPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ import static android.os.UserHandle.PER_USER_RANGE;
|
|||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
import java.lang.IllegalArgumentException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An inclusive range of UIDs.
|
* An inclusive range of UIDs.
|
||||||
*
|
*
|
||||||
@@ -52,6 +50,13 @@ public final class UidRange implements Parcelable {
|
|||||||
return start <= uid && uid <= stop;
|
return start <= uid && uid <= stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the count of UIDs in this range.
|
||||||
|
*/
|
||||||
|
public int count() {
|
||||||
|
return 1 + stop - start;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {@code true} if this range contains every UID contained by the {@param other} range.
|
* @return {@code true} if this range contains every UID contained by the {@param other} range.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user