Move bit utilities to BitUtils.

Test: BitUtilsTest
Change-Id: I3e100c6087f61c2a13aa8558ee8f9a9ad480c681
This commit is contained in:
Chalard Jean
2022-10-12 16:39:37 +09:00
parent 1e4afe071d
commit 1d420b3b76
4 changed files with 23 additions and 47 deletions

View File

@@ -34,8 +34,8 @@ import android.service.NetworkIdentityProto;
import android.telephony.TelephonyManager;
import android.util.proto.ProtoOutputStream;
import com.android.net.module.util.BitUtils;
import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.NetworkCapabilitiesUtils;
import com.android.net.module.util.NetworkIdentityUtils;
import java.lang.annotation.Retention;
@@ -172,7 +172,7 @@ public class NetworkIdentity {
if (oemManaged == OEM_NONE) {
return "OEM_NONE";
}
final int[] bitPositions = NetworkCapabilitiesUtils.unpackBits(oemManaged);
final int[] bitPositions = BitUtils.unpackBits(oemManaged);
final ArrayList<String> oemManagedNames = new ArrayList<String>();
for (int position : bitPositions) {
oemManagedNames.add(nameOfOemManaged(1 << position));

View File

@@ -17,6 +17,7 @@
package android.net;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE;
import static com.android.net.module.util.BitUtils.appendStringRepresentationOfBitMaskToStringBuilder;
import android.annotation.IntDef;
import android.annotation.LongDef;
@@ -36,6 +37,7 @@ import android.util.ArraySet;
import android.util.Range;
import com.android.internal.annotations.VisibleForTesting;
import com.android.net.module.util.BitUtils;
import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.NetworkCapabilitiesUtils;
@@ -209,7 +211,7 @@ public final class NetworkCapabilities implements Parcelable {
if (hasCapability(NET_CAPABILITY_ENTERPRISE) && mEnterpriseId == 0) {
return new int[]{NET_ENTERPRISE_ID_1};
}
return NetworkCapabilitiesUtils.unpackBits(mEnterpriseId);
return BitUtils.unpackBits(mEnterpriseId);
}
/**
@@ -626,7 +628,7 @@ public final class NetworkCapabilities implements Parcelable {
* Network capabilities that are expected to be mutable, i.e., can change while a particular
* network is connected.
*/
private static final long MUTABLE_CAPABILITIES = NetworkCapabilitiesUtils.packBitList(
private static final long MUTABLE_CAPABILITIES = BitUtils.packBitList(
// TRUSTED can change when user explicitly connects to an untrusted network in Settings.
// http://b/18206275
NET_CAPABILITY_TRUSTED,
@@ -661,7 +663,7 @@ public final class NetworkCapabilities implements Parcelable {
/**
* Capabilities that are set by default when the object is constructed.
*/
private static final long DEFAULT_CAPABILITIES = NetworkCapabilitiesUtils.packBitList(
private static final long DEFAULT_CAPABILITIES = BitUtils.packBitList(
NET_CAPABILITY_NOT_RESTRICTED,
NET_CAPABILITY_TRUSTED,
NET_CAPABILITY_NOT_VPN);
@@ -670,7 +672,7 @@ public final class NetworkCapabilities implements Parcelable {
* Capabilities that are managed by ConnectivityService.
*/
private static final long CONNECTIVITY_MANAGED_CAPABILITIES =
NetworkCapabilitiesUtils.packBitList(
BitUtils.packBitList(
NET_CAPABILITY_VALIDATED,
NET_CAPABILITY_CAPTIVE_PORTAL,
NET_CAPABILITY_FOREGROUND,
@@ -683,7 +685,7 @@ public final class NetworkCapabilities implements Parcelable {
* INTERNET, IMS, SUPL, etc.
*/
private static final long TEST_NETWORKS_ALLOWED_CAPABILITIES =
NetworkCapabilitiesUtils.packBitList(
BitUtils.packBitList(
NET_CAPABILITY_NOT_METERED,
NET_CAPABILITY_TEMPORARILY_NOT_METERED,
NET_CAPABILITY_NOT_RESTRICTED,
@@ -783,7 +785,7 @@ public final class NetworkCapabilities implements Parcelable {
* @return an array of capability values for this instance.
*/
public @NonNull @NetCapability int[] getCapabilities() {
return NetworkCapabilitiesUtils.unpackBits(mNetworkCapabilities);
return BitUtils.unpackBits(mNetworkCapabilities);
}
/**
@@ -793,7 +795,7 @@ public final class NetworkCapabilities implements Parcelable {
* @hide
*/
public @NetCapability int[] getForbiddenCapabilities() {
return NetworkCapabilitiesUtils.unpackBits(mForbiddenNetworkCapabilities);
return BitUtils.unpackBits(mForbiddenNetworkCapabilities);
}
@@ -805,8 +807,8 @@ public final class NetworkCapabilities implements Parcelable {
*/
public void setCapabilities(@NetCapability int[] capabilities,
@NetCapability int[] forbiddenCapabilities) {
mNetworkCapabilities = NetworkCapabilitiesUtils.packBits(capabilities);
mForbiddenNetworkCapabilities = NetworkCapabilitiesUtils.packBits(forbiddenCapabilities);
mNetworkCapabilities = BitUtils.packBits(capabilities);
mForbiddenNetworkCapabilities = BitUtils.packBits(forbiddenCapabilities);
}
/**
@@ -943,7 +945,7 @@ public final class NetworkCapabilities implements Parcelable {
& NON_REQUESTABLE_CAPABILITIES;
if (nonRequestable != 0) {
return capabilityNameOf(NetworkCapabilitiesUtils.unpackBits(nonRequestable)[0]);
return capabilityNameOf(BitUtils.unpackBits(nonRequestable)[0]);
}
if (mLinkUpBandwidthKbps != 0 || mLinkDownBandwidthKbps != 0) return "link bandwidth";
if (hasSignalStrength()) return "signalStrength";
@@ -1167,7 +1169,7 @@ public final class NetworkCapabilities implements Parcelable {
* Allowed transports on an unrestricted test network (in addition to TRANSPORT_TEST).
*/
private static final long UNRESTRICTED_TEST_NETWORKS_ALLOWED_TRANSPORTS =
NetworkCapabilitiesUtils.packBitList(
BitUtils.packBitList(
TRANSPORT_TEST,
// Test eth networks are created with EthernetManager#setIncludeTestInterfaces
TRANSPORT_ETHERNET,
@@ -1232,7 +1234,7 @@ public final class NetworkCapabilities implements Parcelable {
*/
@SystemApi
@NonNull public @Transport int[] getTransportTypes() {
return NetworkCapabilitiesUtils.unpackBits(mTransportTypes);
return BitUtils.unpackBits(mTransportTypes);
}
/**
@@ -1242,7 +1244,7 @@ public final class NetworkCapabilities implements Parcelable {
* @hide
*/
public void setTransportTypes(@Transport int[] transportTypes) {
mTransportTypes = NetworkCapabilitiesUtils.packBits(transportTypes);
mTransportTypes = BitUtils.packBits(transportTypes);
}
/**
@@ -2015,9 +2017,9 @@ public final class NetworkCapabilities implements Parcelable {
long oldImmutableCapabilities = this.mNetworkCapabilities & mask;
long newImmutableCapabilities = that.mNetworkCapabilities & mask;
if (oldImmutableCapabilities != newImmutableCapabilities) {
String before = capabilityNamesOf(NetworkCapabilitiesUtils.unpackBits(
String before = capabilityNamesOf(BitUtils.unpackBits(
oldImmutableCapabilities));
String after = capabilityNamesOf(NetworkCapabilitiesUtils.unpackBits(
String after = capabilityNamesOf(BitUtils.unpackBits(
newImmutableCapabilities));
joiner.add(String.format("immutable capabilities changed: %s -> %s", before, after));
}
@@ -2287,32 +2289,6 @@ public final class NetworkCapabilities implements Parcelable {
return sb.toString();
}
private interface NameOf {
String nameOf(int value);
}
/**
* @hide
*/
public static void appendStringRepresentationOfBitMaskToStringBuilder(@NonNull StringBuilder sb,
long bitMask, @NonNull NameOf nameFetcher, @NonNull 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;
}
}
/**
* @hide
*/

View File

@@ -249,13 +249,13 @@ import com.android.internal.util.MessageUtils;
import com.android.modules.utils.BasicShellCommandHandler;
import com.android.modules.utils.build.SdkLevel;
import com.android.net.module.util.BaseNetdUnsolicitedEventListener;
import com.android.net.module.util.BitUtils;
import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.DeviceConfigUtils;
import com.android.net.module.util.InterfaceParams;
import com.android.net.module.util.LinkPropertiesUtils.CompareOrUpdateResult;
import com.android.net.module.util.LinkPropertiesUtils.CompareResult;
import com.android.net.module.util.LocationPermissionChecker;
import com.android.net.module.util.NetworkCapabilitiesUtils;
import com.android.net.module.util.PerUidCounter;
import com.android.net.module.util.PermissionUtils;
import com.android.net.module.util.TcUtils;
@@ -7830,7 +7830,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
@NonNull NetworkCapabilities agentCaps, @NonNull NetworkCapabilities newNc) {
underlyingNetworks = underlyingNetworksOrDefault(
agentCaps.getOwnerUid(), underlyingNetworks);
long transportTypes = NetworkCapabilitiesUtils.packBits(agentCaps.getTransportTypes());
long transportTypes = BitUtils.packBits(agentCaps.getTransportTypes());
int downKbps = NetworkCapabilities.LINK_BANDWIDTH_UNSPECIFIED;
int upKbps = NetworkCapabilities.LINK_BANDWIDTH_UNSPECIFIED;
// metered if any underlying is metered, or originally declared metered by the agent.
@@ -7883,7 +7883,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
suspended = false;
}
newNc.setTransportTypes(NetworkCapabilitiesUtils.unpackBits(transportTypes));
newNc.setTransportTypes(BitUtils.unpackBits(transportTypes));
newNc.setLinkDownstreamBandwidthKbps(downKbps);
newNc.setLinkUpstreamBandwidthKbps(upKbps);
newNc.setCapability(NET_CAPABILITY_NOT_METERED, !metered);

View File

@@ -19,7 +19,7 @@ package android.net.metrics;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static com.android.net.module.util.NetworkCapabilitiesUtils.unpackBits;
import static com.android.net.module.util.BitUtils.unpackBits;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;