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

Commit c68663e6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix scrims not updating after waking up"

parents cbfc0b40 988efb2b
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -579,6 +579,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    private boolean mVibrateOnOpening;
    private VibratorHelper mVibratorHelper;
    protected NotificationPresenter mPresenter;
    private boolean mPulsing;

    @Override
    public void onActiveStateChanged(int code, int uid, String packageName, boolean active) {
@@ -1544,7 +1545,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    }

    public boolean isPulsing() {
        return mAmbientPulseManager.hasNotifications();
        return mPulsing;
    }

    public boolean isLaunchTransitionFadingAway() {
@@ -3935,6 +3936,10 @@ public class StatusBar extends SystemUI implements DemoMode,
                return;
            }

            // Set the state to pulsing, so ScrimController will know what to do once we ask it to
            // execute the transition. The pulse callback will then be invoked when the scrims
            // are black, indicating that StatusBar is ready to present the rest of the UI.
            mPulsing = true;
            mDozeScrimController.pulse(new PulseCallback() {
                @Override
                public void onPulseStarted() {
@@ -3948,6 +3953,7 @@ public class StatusBar extends SystemUI implements DemoMode,

                @Override
                public void onPulseFinished() {
                    mPulsing = false;
                    callback.onPulseFinished();
                    setPulsing(false);
                }
+25 −1
Original line number Diff line number Diff line
@@ -72,6 +72,8 @@ import com.android.systemui.appops.AppOpsControllerImpl;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.doze.DozeHost;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
@@ -123,6 +125,7 @@ public class StatusBarTest extends SysuiTestCase {
    @Mock private IStatusBarService mBarService;
    @Mock private IDreamManager mDreamManager;
    @Mock private ScrimController mScrimController;
    @Mock private DozeScrimController mDozeScrimController;
    @Mock private ArrayList<Entry> mNotificationList;
    @Mock private BiometricUnlockController mBiometricUnlockController;
    @Mock private NotificationData mNotificationData;
@@ -211,7 +214,7 @@ public class StatusBarTest extends SysuiTestCase {
                mKeyguardViewMediator, mRemoteInputManager, mock(NotificationGroupManager.class),
                mock(NotificationGroupAlertTransferHelper.class), mock(FalsingManager.class),
                mock(StatusBarWindowController.class), mock(NotificationIconAreaController.class),
                mock(DozeScrimController.class), mock(NotificationShelf.class),
                mDozeScrimController, mock(NotificationShelf.class),
                mLockscreenUserManager, mCommandQueue, mNotificationPresenter,
                mock(BubbleController.class));
        mStatusBar.mContext = mContext;
@@ -570,7 +573,28 @@ public class StatusBarTest extends SysuiTestCase {
    }

    @Test
    public void testPulseWhileDozing_updatesScrimController() {
        mStatusBar.setBarStateForTest(StatusBarState.KEYGUARD);
        mStatusBar.showKeyguardImpl();

        // Keep track of callback to be able to stop the pulse
        DozeHost.PulseCallback[] pulseCallback = new DozeHost.PulseCallback[1];
        doAnswer(invocation -> {
            pulseCallback[0] = invocation.getArgument(0);
            return null;
        }).when(mDozeScrimController).pulse(any(), anyInt());

        // Starting a pulse should change the scrim controller to the pulsing state
        mStatusBar.mDozeServiceHost.pulseWhileDozing(mock(DozeHost.PulseCallback.class),
                DozeLog.PULSE_REASON_NOTIFICATION);
        verify(mScrimController).transitionTo(eq(ScrimState.PULSING), any());

        // Ending a pulse should take it back to keyguard state
        pulseCallback[0].onPulseFinished();
        verify(mScrimController).transitionTo(eq(ScrimState.KEYGUARD));
    }

    @Test
    public void testSetState_changesIsFullScreenUserSwitcherState() {
        mStatusBar.setBarStateForTest(StatusBarState.KEYGUARD);
        assertFalse(mStatusBar.isFullScreenUserSwitcherState());