Merge "Move bit utilities to BitUtils." am: e45e581cff

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2251614

Change-Id: I4e4d869b882a8f4ebd22d7f11ce0c9c42a904fae
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jean Chalard
2022-10-14 05:28:50 +00:00
committed by Automerger Merge Worker
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.telephony.TelephonyManager;
import android.util.proto.ProtoOutputStream; 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.CollectionUtils;
import com.android.net.module.util.NetworkCapabilitiesUtils;
import com.android.net.module.util.NetworkIdentityUtils; import com.android.net.module.util.NetworkIdentityUtils;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@@ -172,7 +172,7 @@ public class NetworkIdentity {
if (oemManaged == OEM_NONE) { if (oemManaged == OEM_NONE) {
return "OEM_NONE"; return "OEM_NONE";
} }
final int[] bitPositions = NetworkCapabilitiesUtils.unpackBits(oemManaged); final int[] bitPositions = BitUtils.unpackBits(oemManaged);
final ArrayList<String> oemManagedNames = new ArrayList<String>(); final ArrayList<String> oemManagedNames = new ArrayList<String>();
for (int position : bitPositions) { for (int position : bitPositions) {
oemManagedNames.add(nameOfOemManaged(1 << position)); oemManagedNames.add(nameOfOemManaged(1 << position));

View File

@@ -17,6 +17,7 @@
package android.net; package android.net;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE; 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.IntDef;
import android.annotation.LongDef; import android.annotation.LongDef;
@@ -36,6 +37,7 @@ import android.util.ArraySet;
import android.util.Range; import android.util.Range;
import com.android.internal.annotations.VisibleForTesting; 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.CollectionUtils;
import com.android.net.module.util.NetworkCapabilitiesUtils; import com.android.net.module.util.NetworkCapabilitiesUtils;
@@ -217,7 +219,7 @@ public final class NetworkCapabilities implements Parcelable {
if (hasCapability(NET_CAPABILITY_ENTERPRISE) && mEnterpriseId == 0) { if (hasCapability(NET_CAPABILITY_ENTERPRISE) && mEnterpriseId == 0) {
return new int[]{NET_ENTERPRISE_ID_1}; return new int[]{NET_ENTERPRISE_ID_1};
} }
return NetworkCapabilitiesUtils.unpackBits(mEnterpriseId); return BitUtils.unpackBits(mEnterpriseId);
} }
/** /**
@@ -643,7 +645,7 @@ public final class NetworkCapabilities implements Parcelable {
* Network capabilities that are expected to be mutable, i.e., can change while a particular * Network capabilities that are expected to be mutable, i.e., can change while a particular
* network is connected. * 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. // TRUSTED can change when user explicitly connects to an untrusted network in Settings.
// http://b/18206275 // http://b/18206275
NET_CAPABILITY_TRUSTED, NET_CAPABILITY_TRUSTED,
@@ -678,7 +680,7 @@ public final class NetworkCapabilities implements Parcelable {
/** /**
* Capabilities that are set by default when the object is constructed. * 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_NOT_RESTRICTED,
NET_CAPABILITY_TRUSTED, NET_CAPABILITY_TRUSTED,
NET_CAPABILITY_NOT_VPN); NET_CAPABILITY_NOT_VPN);
@@ -687,7 +689,7 @@ public final class NetworkCapabilities implements Parcelable {
* Capabilities that are managed by ConnectivityService. * Capabilities that are managed by ConnectivityService.
*/ */
private static final long CONNECTIVITY_MANAGED_CAPABILITIES = private static final long CONNECTIVITY_MANAGED_CAPABILITIES =
NetworkCapabilitiesUtils.packBitList( BitUtils.packBitList(
NET_CAPABILITY_VALIDATED, NET_CAPABILITY_VALIDATED,
NET_CAPABILITY_CAPTIVE_PORTAL, NET_CAPABILITY_CAPTIVE_PORTAL,
NET_CAPABILITY_FOREGROUND, NET_CAPABILITY_FOREGROUND,
@@ -700,7 +702,7 @@ public final class NetworkCapabilities implements Parcelable {
* INTERNET, IMS, SUPL, etc. * INTERNET, IMS, SUPL, etc.
*/ */
private static final long TEST_NETWORKS_ALLOWED_CAPABILITIES = private static final long TEST_NETWORKS_ALLOWED_CAPABILITIES =
NetworkCapabilitiesUtils.packBitList( BitUtils.packBitList(
NET_CAPABILITY_NOT_METERED, NET_CAPABILITY_NOT_METERED,
NET_CAPABILITY_TEMPORARILY_NOT_METERED, NET_CAPABILITY_TEMPORARILY_NOT_METERED,
NET_CAPABILITY_NOT_RESTRICTED, NET_CAPABILITY_NOT_RESTRICTED,
@@ -800,7 +802,7 @@ public final class NetworkCapabilities implements Parcelable {
* @return an array of capability values for this instance. * @return an array of capability values for this instance.
*/ */
public @NonNull @NetCapability int[] getCapabilities() { public @NonNull @NetCapability int[] getCapabilities() {
return NetworkCapabilitiesUtils.unpackBits(mNetworkCapabilities); return BitUtils.unpackBits(mNetworkCapabilities);
} }
/** /**
@@ -810,7 +812,7 @@ public final class NetworkCapabilities implements Parcelable {
* @hide * @hide
*/ */
public @NetCapability int[] getForbiddenCapabilities() { public @NetCapability int[] getForbiddenCapabilities() {
return NetworkCapabilitiesUtils.unpackBits(mForbiddenNetworkCapabilities); return BitUtils.unpackBits(mForbiddenNetworkCapabilities);
} }
@@ -822,8 +824,8 @@ public final class NetworkCapabilities implements Parcelable {
*/ */
public void setCapabilities(@NetCapability int[] capabilities, public void setCapabilities(@NetCapability int[] capabilities,
@NetCapability int[] forbiddenCapabilities) { @NetCapability int[] forbiddenCapabilities) {
mNetworkCapabilities = NetworkCapabilitiesUtils.packBits(capabilities); mNetworkCapabilities = BitUtils.packBits(capabilities);
mForbiddenNetworkCapabilities = NetworkCapabilitiesUtils.packBits(forbiddenCapabilities); mForbiddenNetworkCapabilities = BitUtils.packBits(forbiddenCapabilities);
} }
/** /**
@@ -960,7 +962,7 @@ public final class NetworkCapabilities implements Parcelable {
& NON_REQUESTABLE_CAPABILITIES; & NON_REQUESTABLE_CAPABILITIES;
if (nonRequestable != 0) { if (nonRequestable != 0) {
return capabilityNameOf(NetworkCapabilitiesUtils.unpackBits(nonRequestable)[0]); return capabilityNameOf(BitUtils.unpackBits(nonRequestable)[0]);
} }
if (mLinkUpBandwidthKbps != 0 || mLinkDownBandwidthKbps != 0) return "link bandwidth"; if (mLinkUpBandwidthKbps != 0 || mLinkDownBandwidthKbps != 0) return "link bandwidth";
if (hasSignalStrength()) return "signalStrength"; if (hasSignalStrength()) return "signalStrength";
@@ -1193,7 +1195,7 @@ public final class NetworkCapabilities implements Parcelable {
* Allowed transports on an unrestricted test network (in addition to TRANSPORT_TEST). * Allowed transports on an unrestricted test network (in addition to TRANSPORT_TEST).
*/ */
private static final long UNRESTRICTED_TEST_NETWORKS_ALLOWED_TRANSPORTS = private static final long UNRESTRICTED_TEST_NETWORKS_ALLOWED_TRANSPORTS =
NetworkCapabilitiesUtils.packBitList( BitUtils.packBitList(
TRANSPORT_TEST, TRANSPORT_TEST,
// Test eth networks are created with EthernetManager#setIncludeTestInterfaces // Test eth networks are created with EthernetManager#setIncludeTestInterfaces
TRANSPORT_ETHERNET, TRANSPORT_ETHERNET,
@@ -1258,7 +1260,7 @@ public final class NetworkCapabilities implements Parcelable {
*/ */
@SystemApi @SystemApi
@NonNull public @Transport int[] getTransportTypes() { @NonNull public @Transport int[] getTransportTypes() {
return NetworkCapabilitiesUtils.unpackBits(mTransportTypes); return BitUtils.unpackBits(mTransportTypes);
} }
/** /**
@@ -1268,7 +1270,7 @@ public final class NetworkCapabilities implements Parcelable {
* @hide * @hide
*/ */
public void setTransportTypes(@Transport int[] transportTypes) { public void setTransportTypes(@Transport int[] transportTypes) {
mTransportTypes = NetworkCapabilitiesUtils.packBits(transportTypes); mTransportTypes = BitUtils.packBits(transportTypes);
} }
/** /**
@@ -2041,9 +2043,9 @@ public final class NetworkCapabilities implements Parcelable {
long oldImmutableCapabilities = this.mNetworkCapabilities & mask; long oldImmutableCapabilities = this.mNetworkCapabilities & mask;
long newImmutableCapabilities = that.mNetworkCapabilities & mask; long newImmutableCapabilities = that.mNetworkCapabilities & mask;
if (oldImmutableCapabilities != newImmutableCapabilities) { if (oldImmutableCapabilities != newImmutableCapabilities) {
String before = capabilityNamesOf(NetworkCapabilitiesUtils.unpackBits( String before = capabilityNamesOf(BitUtils.unpackBits(
oldImmutableCapabilities)); oldImmutableCapabilities));
String after = capabilityNamesOf(NetworkCapabilitiesUtils.unpackBits( String after = capabilityNamesOf(BitUtils.unpackBits(
newImmutableCapabilities)); newImmutableCapabilities));
joiner.add(String.format("immutable capabilities changed: %s -> %s", before, after)); joiner.add(String.format("immutable capabilities changed: %s -> %s", before, after));
} }
@@ -2313,32 +2315,6 @@ public final class NetworkCapabilities implements Parcelable {
return sb.toString(); 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 * @hide
*/ */

View File

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