diff --git a/nearby/framework/java/android/nearby/DataElement.java b/nearby/framework/java/android/nearby/DataElement.java index 02548cb312..10c11322ba 100644 --- a/nearby/framework/java/android/nearby/DataElement.java +++ b/nearby/framework/java/android/nearby/DataElement.java @@ -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 } /** diff --git a/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java b/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java index 30d2000889..40a9ee9fd8 100644 --- a/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java +++ b/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java @@ -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; diff --git a/nearby/service/proto/src/presence/blefilter.proto b/nearby/service/proto/src/presence/blefilter.proto index 9b760c15bf..e1bf45595a 100644 --- a/nearby/service/proto/src/presence/blefilter.proto +++ b/nearby/service/proto/src/presence/blefilter.proto @@ -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; } diff --git a/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java b/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java index 26fb6a92b4..25d3f7319f 100644 --- a/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java +++ b/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java @@ -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) )