From 1d420b3b7699752abc55f49bd72b014ba19dd064 Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Wed, 12 Oct 2022 16:39:37 +0900 Subject: [PATCH] Move bit utilities to BitUtils. Test: BitUtilsTest Change-Id: I3e100c6087f61c2a13aa8558ee8f9a9ad480c681 --- .../src/android/net/NetworkIdentity.java | 4 +- .../src/android/net/NetworkCapabilities.java | 58 ++++++------------- .../android/server/ConnectivityService.java | 6 +- .../net/metrics/IpConnectivityLogTest.java | 2 +- 4 files changed, 23 insertions(+), 47 deletions(-) diff --git a/framework-t/src/android/net/NetworkIdentity.java b/framework-t/src/android/net/NetworkIdentity.java index 350ed86ede..48e50923fe 100644 --- a/framework-t/src/android/net/NetworkIdentity.java +++ b/framework-t/src/android/net/NetworkIdentity.java @@ -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 oemManagedNames = new ArrayList(); for (int position : bitPositions) { oemManagedNames.add(nameOfOemManaged(1 << position)); diff --git a/framework/src/android/net/NetworkCapabilities.java b/framework/src/android/net/NetworkCapabilities.java index 1ad3b9ff53..109eb5c8c4 100644 --- a/framework/src/android/net/NetworkCapabilities.java +++ b/framework/src/android/net/NetworkCapabilities.java @@ -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 */ diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index 6804bafe4e..7756c5b108 100755 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -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); diff --git a/tests/common/java/android/net/metrics/IpConnectivityLogTest.java b/tests/common/java/android/net/metrics/IpConnectivityLogTest.java index 93cf7483f6..b6e9b952b0 100644 --- a/tests/common/java/android/net/metrics/IpConnectivityLogTest.java +++ b/tests/common/java/android/net/metrics/IpConnectivityLogTest.java @@ -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;