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);