From 81ff62f0dd22af2d1769b58a5d4e275f36b7ba68 Mon Sep 17 00:00:00 2001 From: changbetty Date: Sun, 4 Dec 2022 15:16:12 +0000 Subject: [PATCH] [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 --- .../MediaVolumePreferenceController.java | 3 ++- .../MediaVolumePreferenceControllerTest.java | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java index 0ddba089b7c..8c5cf2180e4 100644 --- a/src/com/android/settings/notification/MediaVolumePreferenceController.java +++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java @@ -93,7 +93,8 @@ public class MediaVolumePreferenceController extends VolumeSeekBarPreferenceCont @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 2d023d7142f..251b1d75c59 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 @@ public class MediaVolumePreferenceControllerTest { @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 @@ public class MediaVolumePreferenceControllerTest { @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);