Add name to FastPairDeviceMetadata.

Test: cts test
Bug: 205591293
Change-Id: I869dcc3291adc47d36eae7c7b1a539f57ac42430
diff --git a/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java b/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java
index 852791f..c051eb0 100644
--- a/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java
+++ b/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java
@@ -82,6 +82,14 @@
     }
 
     /**
+     * Get device name.
+     */
+    @Nullable
+    public String getName() {
+        return mMetadataParcel.name;
+    }
+
+    /**
      * Get true wireless image url for left bud.
      */
     @Nullable
@@ -311,6 +319,7 @@
             mBuilderParcel = new FastPairDeviceMetadataParcel();
             mBuilderParcel.imageUrl = null;
             mBuilderParcel.intentUri = null;
+            mBuilderParcel.name = null;
             mBuilderParcel.bleTxPower = 0;
             mBuilderParcel.triggerDistance = 0;
             mBuilderParcel.image = null;
@@ -369,6 +378,18 @@
         }
 
         /**
+         * Set device name.
+         *
+         * @param name Device name.
+         * @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+         */
+        @NonNull
+        public Builder setName(@Nullable String name) {
+            mBuilderParcel.name = name;
+            return this;
+        }
+
+        /**
          * Set ble transmission power.
          *
          * @param bleTxPower Ble transmission power.
diff --git a/nearby/framework/java/android/nearby/aidl/FastPairDeviceMetadataParcel.aidl b/nearby/framework/java/android/nearby/aidl/FastPairDeviceMetadataParcel.aidl
index 565439b..ef00321 100644
--- a/nearby/framework/java/android/nearby/aidl/FastPairDeviceMetadataParcel.aidl
+++ b/nearby/framework/java/android/nearby/aidl/FastPairDeviceMetadataParcel.aidl
@@ -39,6 +39,9 @@
     // The image icon that shows in the notification.
     byte[] image;
 
+    // The name of the device.
+    String name;
+
     int deviceType;
 
     // The image urls for device with device type "true wireless".
diff --git a/nearby/service/java/com/android/server/nearby/provider/Utils.java b/nearby/service/java/com/android/server/nearby/provider/Utils.java
index a340b04..ddb01fa 100644
--- a/nearby/service/java/com/android/server/nearby/provider/Utils.java
+++ b/nearby/service/java/com/android/server/nearby/provider/Utils.java
@@ -309,6 +309,7 @@
                                 .build())
                         .setImageUrl(metadata.deviceMetadata.imageUrl)
                         .setIntentUri(metadata.deviceMetadata.intentUri)
+                        .setName(metadata.deviceMetadata.name)
                         .setBleTxPower(metadata.deviceMetadata.bleTxPower)
                         .setTriggerDistance(metadata.deviceMetadata.triggerDistance)
                         .setDeviceType(
diff --git a/nearby/tests/cts/fastpair/src/android/nearby/cts/FastPairDataProviderBaseTest.java b/nearby/tests/cts/fastpair/src/android/nearby/cts/FastPairDataProviderBaseTest.java
index 743a8e7..71fc330 100644
--- a/nearby/tests/cts/fastpair/src/android/nearby/cts/FastPairDataProviderBaseTest.java
+++ b/nearby/tests/cts/fastpair/src/android/nearby/cts/FastPairDataProviderBaseTest.java
@@ -150,6 +150,7 @@
     private static final int LAST_USER_EXPERIENCE = 93;
     private static final long LOST_MILLIS = 393284L;
     private static final String MAC_ADDRESS = "MAC_ADDRESS";
+    private static final String NAME = "NAME";
     private static final String PACKAGE_NAME = "PACKAGE_NAME";
     private static final long PENDING_APP_INSTALL_TIMESTAMP_MILLIS = 832393L;
     private static final int RSSI = 9;
@@ -707,6 +708,7 @@
         builder.setInitialPairingDescription(INITIAL_PAIRING_DESCRIPTION);
         builder.setIntentUri(INTENT_URI);
         builder.setLocale(LOCALE);
+        builder.setName(NAME);
         builder.setOpenCompanionAppDescription(OPEN_COMPANION_APP_DESCRIPTION);
         builder.setRetroactivePairingDescription(RETRO_ACTIVE_PAIRING_DESCRIPTION);
         builder.setSubsequentPairingDescription(SUBSEQUENT_PAIRING_DESCRIPTION);
@@ -751,6 +753,7 @@
         parcel.initialPairingDescription = INITIAL_PAIRING_DESCRIPTION;
         parcel.intentUri = INTENT_URI;
         parcel.locale = LOCALE;
+        parcel.name = NAME;
         parcel.openCompanionAppDescription = OPEN_COMPANION_APP_DESCRIPTION;
         parcel.retroactivePairingDescription = RETRO_ACTIVE_PAIRING_DESCRIPTION;
         parcel.subsequentPairingDescription = SUBSEQUENT_PAIRING_DESCRIPTION;
@@ -890,6 +893,7 @@
         assertThat(metadataParcel.intentUri).isEqualTo(INTENT_URI);
 
         assertThat(metadataParcel.locale).isEqualTo(LOCALE);
+        assertThat(metadataParcel.name).isEqualTo(NAME);
 
         assertThat(metadataParcel.openCompanionAppDescription).isEqualTo(
                 OPEN_COMPANION_APP_DESCRIPTION);
@@ -949,6 +953,7 @@
         assertThat(metadata.getInitialPairingDescription()).isEqualTo(INITIAL_PAIRING_DESCRIPTION);
         assertThat(metadata.getIntentUri()).isEqualTo(INTENT_URI);
         assertThat(metadata.getLocale()).isEqualTo(LOCALE);
+        assertThat(metadata.getName()).isEqualTo(NAME);
         assertThat(metadata.getOpenCompanionAppDescription())
                 .isEqualTo(OPEN_COMPANION_APP_DESCRIPTION);
         assertThat(metadata.getRetroactivePairingDescription())