diff options
| author | 2018-02-01 11:29:25 -0500 | |
|---|---|---|
| committer | 2018-02-01 12:18:17 -0500 | |
| commit | a2f682f79c1a51219db6d7f80658a9ee16a73bfe (patch) | |
| tree | 21e4fbea1427ac4469ceee333c069d9f1f1f41bb | |
| parent | 7f03076ba56293807fdf18774c68cf9275b75bfe (diff) | |
For null status bar, can still show volume dialog
Bug: 72627648
Test: runtest --path /extra/master/frameworks/base/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java
Change-Id: I69eb0e40fd8f3a10785a44a9c43272018f827d1f
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java | 13 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java | 10 |
2 files changed, 18 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java index 9aee00ec145e..3c29b7740102 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java @@ -362,12 +362,15 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa private boolean shouldShowUI(int flags) { updateStatusBar(); - return mStatusBar != null - && mStatusBar.getWakefulnessState() != WakefulnessLifecycle.WAKEFULNESS_ASLEEP - && mStatusBar.getWakefulnessState() != WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP + // if status bar isn't null, check if phone is in AOD, else check flags + // since we could be using a different status bar + return mStatusBar != null ? + mStatusBar.getWakefulnessState() != WakefulnessLifecycle.WAKEFULNESS_ASLEEP + && mStatusBar.getWakefulnessState() != + WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP && mStatusBar.isDeviceInteractive() - && (flags & AudioManager.FLAG_SHOW_UI) != 0 - && mShowVolumeDialog; + && (flags & AudioManager.FLAG_SHOW_UI) != 0 && mShowVolumeDialog + : mShowVolumeDialog && (flags & AudioManager.FLAG_SHOW_UI) != 0; } boolean onVolumeChangedW(int stream, int flags) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java index 401fd6857e76..a4ed45997d2a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java @@ -76,6 +76,16 @@ public class VolumeDialogControllerImplTest extends SysuiTestCase { } @Test + public void testVolumeChangeW_nullStatusBar() { + VolumeDialogControllerImpl.C callback = mock(VolumeDialogControllerImpl.C.class); + TestableVolumeDialogControllerImpl nullStatusBarTestableDialog = new + TestableVolumeDialogControllerImpl(mContext, callback, null); + nullStatusBarTestableDialog.setEnableDialogs(true, true); + nullStatusBarTestableDialog.onVolumeChangedW(0, AudioManager.FLAG_SHOW_UI); + verify(callback, times(1)).onShowRequested(Events.SHOW_REASON_VOLUME_CHANGED); + } + + @Test public void testOnRemoteVolumeChanged_newStream_noNullPointer() { MediaSession.Token token = new MediaSession.Token(null); mVolumeController.mMediaSessionsCallbacksW.onRemoteVolumeChanged(token, 0); |