Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -431,6 +431,11 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER | AudioManager.DEVICE_OUT_BLE_HEADSET)) != 0; changed |= updateStreamRoutedToBluetoothW(stream, routedToBluetooth); } else if (stream == AudioManager.STREAM_VOICE_CALL) { final boolean routedToBluetooth = (mAudio.getDevicesForStream(AudioManager.STREAM_VOICE_CALL) & AudioManager.DEVICE_OUT_BLE_HEADSET) != 0; changed |= updateStreamRoutedToBluetoothW(stream, routedToBluetooth); } return changed; } Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +7 −2 Original line number Diff line number Diff line Loading @@ -1769,6 +1769,7 @@ public class VolumeDialogImpl implements VolumeDialog, if (ss.level == row.requestedLevel) { row.requestedLevel = -1; } final boolean isVoiceCallStream = row.stream == AudioManager.STREAM_VOICE_CALL; final boolean isA11yStream = row.stream == STREAM_ACCESSIBILITY; final boolean isRingStream = row.stream == AudioManager.STREAM_RING; final boolean isSystemStream = row.stream == AudioManager.STREAM_SYSTEM; Loading Loading @@ -1813,8 +1814,12 @@ public class VolumeDialogImpl implements VolumeDialog, } else if (isRingSilent || zenMuted) { iconRes = row.iconMuteRes; } else if (ss.routedToBluetooth) { if (isVoiceCallStream) { iconRes = R.drawable.ic_volume_bt_sco; } else { iconRes = isStreamMuted(ss) ? R.drawable.ic_volume_media_bt_mute : R.drawable.ic_volume_media_bt; } } else if (isStreamMuted(ss)) { iconRes = ss.muted ? R.drawable.ic_volume_media_off : row.iconMuteRes; } else { Loading packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,34 @@ public class VolumeDialogControllerImplTest extends SysuiTestCase { LOCK_TASK_MODE_NONE); } @Test public void testVolumeChangeW_deviceOutFromBLEHeadset_doStateChanged() { mVolumeController.setDeviceInteractive(false); when(mWakefullnessLifcycle.getWakefulness()).thenReturn( WakefulnessLifecycle.WAKEFULNESS_AWAKE); when(mAudioManager.getDevicesForStream(AudioManager.STREAM_VOICE_CALL)).thenReturn( AudioManager.DEVICE_OUT_BLE_HEADSET); mVolumeController.onVolumeChangedW( AudioManager.STREAM_VOICE_CALL, AudioManager.FLAG_SHOW_UI); verify(mCallback, times(1)).onStateChanged(any()); } @Test public void testVolumeChangeW_deviceOutFromA2DP_doStateChanged() { mVolumeController.setDeviceInteractive(false); when(mWakefullnessLifcycle.getWakefulness()).thenReturn( WakefulnessLifecycle.WAKEFULNESS_AWAKE); when(mAudioManager.getDevicesForStream(AudioManager.STREAM_VOICE_CALL)).thenReturn( AudioManager.DEVICE_OUT_BLUETOOTH_A2DP); mVolumeController.onVolumeChangedW( AudioManager.STREAM_VOICE_CALL, AudioManager.FLAG_SHOW_UI); verify(mCallback, never()).onStateChanged(any()); } @Test public void testOnRemoteVolumeChanged_newStream_noNullPointer() { MediaSession.Token token = new MediaSession.Token(Process.myUid(), null); Loading Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -431,6 +431,11 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER | AudioManager.DEVICE_OUT_BLE_HEADSET)) != 0; changed |= updateStreamRoutedToBluetoothW(stream, routedToBluetooth); } else if (stream == AudioManager.STREAM_VOICE_CALL) { final boolean routedToBluetooth = (mAudio.getDevicesForStream(AudioManager.STREAM_VOICE_CALL) & AudioManager.DEVICE_OUT_BLE_HEADSET) != 0; changed |= updateStreamRoutedToBluetoothW(stream, routedToBluetooth); } return changed; } Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +7 −2 Original line number Diff line number Diff line Loading @@ -1769,6 +1769,7 @@ public class VolumeDialogImpl implements VolumeDialog, if (ss.level == row.requestedLevel) { row.requestedLevel = -1; } final boolean isVoiceCallStream = row.stream == AudioManager.STREAM_VOICE_CALL; final boolean isA11yStream = row.stream == STREAM_ACCESSIBILITY; final boolean isRingStream = row.stream == AudioManager.STREAM_RING; final boolean isSystemStream = row.stream == AudioManager.STREAM_SYSTEM; Loading Loading @@ -1813,8 +1814,12 @@ public class VolumeDialogImpl implements VolumeDialog, } else if (isRingSilent || zenMuted) { iconRes = row.iconMuteRes; } else if (ss.routedToBluetooth) { if (isVoiceCallStream) { iconRes = R.drawable.ic_volume_bt_sco; } else { iconRes = isStreamMuted(ss) ? R.drawable.ic_volume_media_bt_mute : R.drawable.ic_volume_media_bt; } } else if (isStreamMuted(ss)) { iconRes = ss.muted ? R.drawable.ic_volume_media_off : row.iconMuteRes; } else { Loading
packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,34 @@ public class VolumeDialogControllerImplTest extends SysuiTestCase { LOCK_TASK_MODE_NONE); } @Test public void testVolumeChangeW_deviceOutFromBLEHeadset_doStateChanged() { mVolumeController.setDeviceInteractive(false); when(mWakefullnessLifcycle.getWakefulness()).thenReturn( WakefulnessLifecycle.WAKEFULNESS_AWAKE); when(mAudioManager.getDevicesForStream(AudioManager.STREAM_VOICE_CALL)).thenReturn( AudioManager.DEVICE_OUT_BLE_HEADSET); mVolumeController.onVolumeChangedW( AudioManager.STREAM_VOICE_CALL, AudioManager.FLAG_SHOW_UI); verify(mCallback, times(1)).onStateChanged(any()); } @Test public void testVolumeChangeW_deviceOutFromA2DP_doStateChanged() { mVolumeController.setDeviceInteractive(false); when(mWakefullnessLifcycle.getWakefulness()).thenReturn( WakefulnessLifecycle.WAKEFULNESS_AWAKE); when(mAudioManager.getDevicesForStream(AudioManager.STREAM_VOICE_CALL)).thenReturn( AudioManager.DEVICE_OUT_BLUETOOTH_A2DP); mVolumeController.onVolumeChangedW( AudioManager.STREAM_VOICE_CALL, AudioManager.FLAG_SHOW_UI); verify(mCallback, never()).onStateChanged(any()); } @Test public void testOnRemoteVolumeChanged_newStream_noNullPointer() { MediaSession.Token token = new MediaSession.Token(Process.myUid(), null); Loading