[LE Audio] Add broadcast icon when device is broadcasting but LE device
is disconnected

Bug: 260173555
Test: make RunSettingsRoboTests ROBOTEST_FILTER=MediaVolumePreferenceControllerTest
Change-Id: I9e8117d5c885953ab7931833de81ceab63273d43
diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java
index 0ddba08..8c5cf21 100644
--- a/src/com/android/settings/notification/MediaVolumePreferenceController.java
+++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java
@@ -93,7 +93,8 @@
 
     @VisibleForTesting
     boolean isSupportEndItem() {
-        return getWorker() != null && getWorker().isBroadcastSupported() && isConnectedBLEDevice();
+        return getWorker() != null && getWorker().isBroadcastSupported()
+                && (getWorker().isDeviceBroadcasting() || isConnectedBLEDevice());
     }
 
     private boolean isConnectedBLEDevice() {
diff --git a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
index 2d023d7..251b1d7 100644
--- a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
@@ -114,6 +114,7 @@
     @Test
     public void isSupportEndItem_withBleDevice_returnsTrue() {
         doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
+        doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
         doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
 
         assertThat(mController.isSupportEndItem()).isTrue();
@@ -130,14 +131,35 @@
     @Test
     public void isSupportEndItem_withNonBleDevice_returnsFalse() {
         doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
+        doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
         doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
 
         assertThat(mController.isSupportEndItem()).isFalse();
     }
 
     @Test
+    public void isSupportEndItem_deviceIsBroadcastingAndConnectedToNonBleDevice_returnsTrue() {
+        doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
+        doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
+        doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+
+        assertThat(mController.isSupportEndItem()).isTrue();
+    }
+
+    @Test
+    public void isSupportEndItem_deviceIsNotBroadcastingAndConnectedToNonBleDevice_returnsFalse() {
+        doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
+        doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
+        doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+
+        assertThat(mController.isSupportEndItem()).isFalse();
+    }
+
+
+    @Test
     public void getSliceEndItem_NotSupportEndItem_getsNullSliceAction() {
         doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
+        doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
         doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
 
         final SliceAction sliceAction = mController.getSliceEndItem(mContext);