Use broadcast name instead of program info.

Bug: 331547596
Test: atest
Change-Id: Ie5c35484367a32daeb5020fd03e8653e8c70b4be
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
index 2ab7b80..b0994d1 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
@@ -214,6 +214,9 @@
                 ThreadUtils.postOnBackgroundThread(
                         () -> {
                             if (mBroadcast != null) {
+                                mBroadcast.setBroadcastName((String) newValue);
+                                // We currently don't have a UI field for program info so we keep it
+                                // consistent with broadcast name.
                                 mBroadcast.setProgramInfo((String) newValue);
                                 if (isBroadcasting(mBtManager)) {
                                     mBroadcast.updateBroadcast();
@@ -242,7 +245,7 @@
                     ThreadUtils.postOnBackgroundThread(
                             () -> {
                                 if (mBroadcast != null) {
-                                    String name = mBroadcast.getProgramInfo();
+                                    String name = mBroadcast.getBroadcastName();
                                     AudioSharingUtils.postOnMainThread(
                                             mContext,
                                             () -> {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
index 0334e05..dbdf01c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
@@ -26,6 +26,7 @@
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
+import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.TwoTargetPreference;
 
 /**
@@ -74,6 +75,9 @@
     void setAudioStreamMetadata(BluetoothLeBroadcastMetadata metadata) {
         if (mAudioStream != null) {
             mAudioStream.setMetadata(metadata);
+            // Update title based on the metadata
+            String broadcastName = AudioStreamsHelper.getBroadcastName(metadata);
+            ThreadUtils.postOnMainThread(() -> setTitle(broadcastName));
         }
     }
 
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java
index 9fb5b21..514007f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java
@@ -101,7 +101,12 @@
     @Override
     public void onSourceFound(BluetoothLeBroadcastMetadata source) {
         if (DEBUG) {
-            Log.d(TAG, "onSourceFound() broadcastId : " + source.getBroadcastId());
+            Log.d(
+                    TAG,
+                    "onSourceFound() broadcastId : "
+                            + source.getBroadcastId()
+                            + " broadcastName : "
+                            + source.getBroadcastName());
         }
     }
 
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
index d2b0a8a..04e791f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
@@ -314,22 +314,15 @@
     }
 
     static String getBroadcastName(BluetoothLeBroadcastMetadata source) {
-        // TODO(b/331547596): prioritize broadcastName
-        Optional<String> optionalProgramInfo =
-                source.getSubgroups().stream()
-                        .map(subgroup -> subgroup.getContentMetadata().getProgramInfo())
-                        .filter(programInfo -> !Strings.isNullOrEmpty(programInfo))
-                        .findFirst();
-
-        return optionalProgramInfo.orElseGet(
-                () -> {
-                    String broadcastName = source.getBroadcastName();
-                    if (broadcastName != null && !broadcastName.isEmpty()) {
-                        return broadcastName;
-                    } else {
-                        return "Broadcast Id: " + source.getBroadcastId();
-                    }
-                });
+        String broadcastName = source.getBroadcastName();
+        if (broadcastName != null && !broadcastName.isEmpty()) {
+            return broadcastName;
+        }
+        return source.getSubgroups().stream()
+                .map(subgroup -> subgroup.getContentMetadata().getProgramInfo())
+                .filter(programInfo -> !Strings.isNullOrEmpty(programInfo))
+                .findFirst()
+                .orElse("Broadcast Id: " + source.getBroadcastId());
     }
 
     static String getBroadcastName(BluetoothLeBroadcastReceiveState state) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
index bc39a42..cb3a0da 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
@@ -21,8 +21,6 @@
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.util.Log;
 
-import java.util.Locale;
-
 public class AudioStreamsProgressCategoryCallback extends AudioStreamsBroadcastAssistantCallback {
     private static final String TAG = "AudioStreamsProgressCategoryCallback";
 
@@ -48,8 +46,7 @@
     @Override
     public void onSearchStartFailed(int reason) {
         super.onSearchStartFailed(reason);
-        mCategoryController.showToast(
-                String.format(Locale.US, "Failed to start scanning, reason %d", reason));
+        mCategoryController.showToast("Failed to start scanning. Try again.");
         mCategoryController.setScanning(false);
     }
 
@@ -66,8 +63,7 @@
     @Override
     public void onSearchStopFailed(int reason) {
         super.onSearchStopFailed(reason);
-        mCategoryController.showToast(
-                String.format(Locale.US, "Failed to stop scanning, reason %d", reason));
+        mCategoryController.showToast("Failed to stop scanning. Try again.");
     }
 
     @Override
@@ -106,12 +102,7 @@
     @Override
     public void onSourceRemoveFailed(BluetoothDevice sink, int sourceId, int reason) {
         super.onSourceRemoveFailed(sink, sourceId, reason);
-        mCategoryController.showToast(
-                String.format(
-                        Locale.US,
-                        "Failed to remove source %d for sink %s",
-                        sourceId,
-                        sink.getAddress()));
+        mCategoryController.showToast("Failed to remove source.");
     }
 
     @Override