Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2f682f7 authored by Beverly's avatar Beverly
Browse files

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
parent 7f03076b
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -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) {
+10 −0
Original line number Diff line number Diff line
@@ -75,6 +75,16 @@ public class VolumeDialogControllerImplTest extends SysuiTestCase {
        verify(mCallback, times(1)).onShowRequested(Events.SHOW_REASON_VOLUME_CHANGED);
    }

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