summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly <beverlyt@google.com> 2018-02-01 11:29:25 -0500
committer Beverly <beverlyt@google.com> 2018-02-01 12:18:17 -0500
commita2f682f79c1a51219db6d7f80658a9ee16a73bfe (patch)
tree21e4fbea1427ac4469ceee333c069d9f1f1f41bb
parent7f03076ba56293807fdf18774c68cf9275b75bfe (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.java13
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java10
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);