[WIFICOND][API] Replace capability BitSet by an int

The capability bit set is standard constrained - 16 bits and no more.
Can use a simpler/lighter int.

Per API council feedback.

Bug: 148680192
Test: atest android.net.wifi
Test: atest com.android.server.wifi
Change-Id: I47e8458d64f998da2e9743ad850687bc56a24cf6
This commit is contained in:
Etan Cohen
2020-02-05 13:16:53 -08:00
parent e4fad05f52
commit e8d73bb397
4 changed files with 8 additions and 28 deletions

View File

@@ -8199,7 +8199,7 @@ package android.net.wifi.wificond {
ctor public NativeScanResult();
method public int describeContents();
method @NonNull public byte[] getBssid();
method @NonNull public java.util.BitSet getCapabilities();
method @NonNull public int getCapabilities();
method public int getFrequencyMhz();
method @NonNull public byte[] getInformationElements();
method @NonNull public java.util.List<android.net.wifi.wificond.RadioChainInfo> getRadioChainInfos();

View File

@@ -64,10 +64,6 @@ GenericException: android.service.autofill.augmented.FillWindow#finalize():
HeavyBitSet: android.net.wifi.wificond.NativeScanResult#getCapabilities():
IntentBuilderName: android.content.Context#registerReceiverForAllUsers(android.content.BroadcastReceiver, android.content.IntentFilter, String, android.os.Handler):
Methods creating an Intent should be named `create<Foo>Intent()`, was `registerReceiverForAllUsers`

View File

@@ -24,7 +24,6 @@ import android.os.Parcelable;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.List;
/**
@@ -34,8 +33,6 @@ import java.util.List;
*/
@SystemApi
public final class NativeScanResult implements Parcelable {
private static final int CAPABILITY_SIZE = 16;
/** @hide */
@VisibleForTesting
public byte[] ssid;
@@ -56,7 +53,7 @@ public final class NativeScanResult implements Parcelable {
public long tsf;
/** @hide */
@VisibleForTesting
public BitSet capability;
public int capability;
/** @hide */
@VisibleForTesting
public boolean associated;
@@ -134,7 +131,7 @@ public final class NativeScanResult implements Parcelable {
* Returns the capabilities of the AP repseresented by this scan result as advertised in the
* received probe response or beacon.
*
* This is a bit mask describing the capabilities of a BSS. See IEEE Std 802.11: 8.4.1.4:
* This is a bit mask describing the capabilities of a BSS. See IEEE Std 802.11: 9.4.1.4:
* Bit 0 - ESS
* Bit 1 - IBSS
* Bit 2 - CF Pollable
@@ -143,7 +140,7 @@ public final class NativeScanResult implements Parcelable {
* Bit 5 - Short Preamble
* Bit 6 - PBCC
* Bit 7 - Channel Agility
* Bit 8 - Spectrum Mgmt
* Bit 8 - Spectrum Management
* Bit 9 - QoS
* Bit 10 - Short Slot Time
* Bit 11 - APSD
@@ -154,7 +151,7 @@ public final class NativeScanResult implements Parcelable {
*
* @return a bit mask of capabilities.
*/
@NonNull public BitSet getCapabilities() {
@NonNull public int getCapabilities() {
return capability;
}
@@ -188,13 +185,7 @@ public final class NativeScanResult implements Parcelable {
out.writeInt(frequency);
out.writeInt(signalMbm);
out.writeLong(tsf);
int capabilityInt = 0;
for (int i = 0; i < CAPABILITY_SIZE; i++) {
if (capability.get(i)) {
capabilityInt |= 1 << i;
}
}
out.writeInt(capabilityInt);
out.writeInt(capability);
out.writeInt(associated ? 1 : 0);
out.writeTypedList(radioChainInfos);
}
@@ -220,13 +211,7 @@ public final class NativeScanResult implements Parcelable {
result.frequency = in.readInt();
result.signalMbm = in.readInt();
result.tsf = in.readLong();
int capabilityInt = in.readInt();
result.capability = new BitSet(CAPABILITY_SIZE);
for (int i = 0; i < CAPABILITY_SIZE; i++) {
if ((capabilityInt & (1 << i)) != 0) {
result.capability.set(i);
}
}
result.capability = in.readInt();
result.associated = (in.readInt() != 0);
result.radioChainInfos = new ArrayList<>();
in.readTypedList(result.radioChainInfos, RadioChainInfo.CREATOR);

View File

@@ -28,7 +28,6 @@ import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
/**
* Unit tests for {@link android.net.wifi.wificond.NativeScanResult}.
@@ -46,7 +45,7 @@ public class NativeScanResultTest {
private static final int TEST_FREQUENCY = 2456;
private static final int TEST_SIGNAL_MBM = -45;
private static final long TEST_TSF = 34455441;
private static final BitSet TEST_CAPABILITY = new BitSet(16) {{ set(2); set(5); }};
private static final int TEST_CAPABILITY = (0x1 << 2) | (0x1 << 5);
private static final boolean TEST_ASSOCIATED = true;
private static final int[] RADIO_CHAIN_IDS = { 0, 1 };
private static final int[] RADIO_CHAIN_LEVELS = { -56, -65 };