Moves the test DEs to the last index

Bug: 276836981
Test: on device test
Ignore-AOSP-First: nearby_not_in_aosp_yet
Change-Id: I82f9ff90b2081f21ad47fba6a3f846f4936ec99e
This commit is contained in:
Jayden Kim 2023-04-04 06:14:19 +00:00
commit f25cb2c88c
4 changed files with 30 additions and 122 deletions

View file

@ -78,8 +78,9 @@ public final class DataElement implements Parcelable {
int BATTERY = 11;
// Reserves test DE ranges from {@link DataElement.DataType#TEST_DE_BEGIN}
// to {@link DataElement.DataType#TEST_DE_END}, inclusive.
int TEST_DE_BEGIN = 256;
int TEST_DE_END = 260;
// Reserves 128 Test DEs.
int TEST_DE_BEGIN = Integer.MAX_VALUE - 127; // 2147483520
int TEST_DE_END = Integer.MAX_VALUE; // 2147483647
}
/**

View file

@ -41,7 +41,6 @@ import com.android.server.nearby.NearbyConfiguration;
import com.google.protobuf.ByteString;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Executor;
@ -194,10 +193,7 @@ public class ChreDiscoveryProvider extends AbstractDiscoveryProvider {
private Blefilter.DataElement toProtoDataElement(DataElement dataElement) {
return Blefilter.DataElement.newBuilder()
.setKey(Arrays.stream(Blefilter.DataElement.ElementType.values())
.filter(p -> p.getNumber() == dataElement.getKey())
.findFirst()
.get())
.setKey(dataElement.getKey())
.setValue(ByteString.copyFrom(dataElement.getValue()))
.setValueLength(dataElement.getValue().length)
.build();
@ -363,31 +359,20 @@ public class ChreDiscoveryProvider extends AbstractDiscoveryProvider {
PresenceDevice.Builder presenceDeviceBuilder) {
int endIndex = element.hasValueLength() ? element.getValueLength() :
element.getValue().size();
switch (element.getKey()) {
case DE_FAST_PAIR_ACCOUNT_KEY:
int key = element.getKey();
switch (key) {
case DataElement.DataType.ACCOUNT_KEY_DATA:
case DataElement.DataType.CONNECTION_STATUS:
case DataElement.DataType.BATTERY:
presenceDeviceBuilder.addExtendedProperty(
new DataElement(DataElement.DataType.ACCOUNT_KEY_DATA,
element.getValue().substring(0, endIndex).toByteArray()));
break;
case DE_CONNECTION_STATUS:
presenceDeviceBuilder.addExtendedProperty(
new DataElement(DataElement.DataType.CONNECTION_STATUS,
element.getValue().substring(0, endIndex).toByteArray()));
break;
case DE_BATTERY_STATUS:
presenceDeviceBuilder.addExtendedProperty(
new DataElement(DataElement.DataType.BATTERY,
new DataElement(key,
element.getValue().substring(0, endIndex).toByteArray()));
break;
default:
if (mNearbyConfiguration.isTestAppSupported()
&& DataElement.isTestDeType(element.getKey().getNumber())) {
&& DataElement.isTestDeType(key)) {
presenceDeviceBuilder.addExtendedProperty(
new DataElement(Arrays.stream(
Blefilter.DataElement.ElementType.values())
.filter(p -> p.getNumber() == element.getKey().getNumber())
.findFirst()
.get().getNumber(),
new DataElement(key,
element.getValue().substring(0, endIndex).toByteArray()));
}
break;

View file

@ -58,23 +58,16 @@ message PublicCredential {
message DataElement {
enum ElementType {
option allow_alias = true;
DE_NONE = 0;
DE_FAST_PAIR_ACCOUNT_KEY = 9;
DE_CONNECTION_STATUS = 10;
DE_BATTERY_STATUS = 11;
// Reserves Test DEs.
DE_TEST_BEGIN = 256;
DE_TEST_1 = 256;
DE_TEST_2 = 257;
DE_TEST_3 = 258;
DE_TEST_4 = 259;
DE_TEST_5 = 260;
DE_TEST_END = 260;
// Reserves 128 Test DEs.
DE_TEST_BEGIN = 2147483520; // INT_MAX - 127
DE_TEST_END = 2147483647; // INT_MAX
}
optional ElementType key = 1;
optional int32 key = 1;
optional bytes value = 2;
optional uint32 value_length = 3;
}

View file

@ -67,11 +67,8 @@ public class ChreDiscoveryProviderTest {
private static final int DATA_TYPE_BLUETOOTH_ADDR_KEY = 101;
private static final int DATA_TYPE_FP_ACCOUNT_KEY = 9;
private static final int DATA_TYPE_BLE_SERVICE_DATA_KEY = 100;
private static final int DATA_TYPE_TEST_1_KEY = 256;
private static final int DATA_TYPE_TEST_2_KEY = 257;
private static final int DATA_TYPE_TEST_3_KEY = 258;
private static final int DATA_TYPE_TEST_4_KEY = 259;
private static final int DATA_TYPE_TEST_5_KEY = 260;
private static final int DATA_TYPE_TEST_DE_BEGIN_KEY = 2147483520;
private static final int DATA_TYPE_TEST_DE_END_KEY = 2147483647;
private ChreDiscoveryProvider mChreDiscoveryProvider;
@ -174,58 +171,27 @@ public class ChreDiscoveryProviderTest {
.setBleServiceData(ByteString.copyFrom(bleServiceData))
.setPublicCredential(credential)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_CONNECTION_STATUS)
.setKey(DATA_TYPE_CONNECTION_STATUS_KEY)
.setValue(ByteString.copyFrom(connectionStatus))
.setValueLength(connectionStatus.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_BATTERY_STATUS)
.setKey(DATA_TYPE_BATTERY_KEY)
.setValue(ByteString.copyFrom(batteryStatus))
.setValueLength(batteryStatus.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_FAST_PAIR_ACCOUNT_KEY)
.setKey(DATA_TYPE_FP_ACCOUNT_KEY)
.setValue(ByteString.copyFrom(fastPairAccountKey))
.setValueLength(fastPairAccountKey.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_1)
.setKey(DATA_TYPE_TEST_DE_BEGIN_KEY)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_2)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_3)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_4)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_5)
.setKey(DATA_TYPE_TEST_DE_END_KEY)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
@ -286,15 +252,9 @@ public class ChreDiscoveryProviderTest {
expectedExtendedProperties.add(
new DataElement(DATA_TYPE_BLE_SERVICE_DATA_KEY, new byte[] {1, 2, 3, 4, 5}));
expectedExtendedProperties.add(
new DataElement(DATA_TYPE_TEST_1_KEY, testData));
new DataElement(DATA_TYPE_TEST_DE_BEGIN_KEY, testData));
expectedExtendedProperties.add(
new DataElement(DATA_TYPE_TEST_2_KEY, testData));
expectedExtendedProperties.add(
new DataElement(DATA_TYPE_TEST_3_KEY, testData));
expectedExtendedProperties.add(
new DataElement(DATA_TYPE_TEST_4_KEY, testData));
expectedExtendedProperties.add(
new DataElement(DATA_TYPE_TEST_5_KEY, testData));
new DataElement(DATA_TYPE_TEST_DE_END_KEY, testData));
Blefilter.PublicCredential credential =
Blefilter.PublicCredential.newBuilder()
@ -312,58 +272,27 @@ public class ChreDiscoveryProviderTest {
.setBleServiceData(ByteString.copyFrom(bleServiceData))
.setPublicCredential(credential)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_CONNECTION_STATUS)
.setKey(DATA_TYPE_CONNECTION_STATUS_KEY)
.setValue(ByteString.copyFrom(connectionStatus))
.setValueLength(connectionStatus.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_BATTERY_STATUS)
.setKey(DATA_TYPE_BATTERY_KEY)
.setValue(ByteString.copyFrom(batteryStatus))
.setValueLength(batteryStatus.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_FAST_PAIR_ACCOUNT_KEY)
.setKey(DATA_TYPE_FP_ACCOUNT_KEY)
.setValue(ByteString.copyFrom(fastPairAccountKey))
.setValueLength(fastPairAccountKey.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_1)
.setKey(DATA_TYPE_TEST_DE_BEGIN_KEY)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_2)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_3)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_4)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)
.addDataElement(Blefilter.DataElement.newBuilder()
.setKey(
Blefilter.DataElement.ElementType
.DE_TEST_5)
.setKey(DATA_TYPE_TEST_DE_END_KEY)
.setValue(ByteString.copyFrom(testData))
.setValueLength(testData.length)
)