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