Merge "Moves the test DEs to the last index" into tm-mainline-prod
diff --git a/nearby/framework/java/android/nearby/DataElement.java b/nearby/framework/java/android/nearby/DataElement.java
index 02548cb..10c1132 100644
--- a/nearby/framework/java/android/nearby/DataElement.java
+++ b/nearby/framework/java/android/nearby/DataElement.java
@@ -78,8 +78,9 @@
         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 30d2000..40a9ee9 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.google.protobuf.ByteString;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Executor;
@@ -194,10 +193,7 @@
 
     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 @@
                 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 9b760c1..e1bf455 100644
--- a/nearby/service/proto/src/presence/blefilter.proto
+++ b/nearby/service/proto/src/presence/blefilter.proto
@@ -58,23 +58,16 @@
 
 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 26fb6a9..25d3f73 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 @@
     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 @@
                         .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 @@
         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 @@
                         .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)
                         )