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

Commit 2d620fa2 authored by Evan Laird's avatar Evan Laird
Browse files

Tell KeygaurdViewMediator about keyguard showing updates

StatusBarKeygaurdViewManager used to rely on StatusBar to tell
KeyguardMonitor about keyguard show/hide, so this change makes the
manager tell the monitor directly about updates.

The problem with the old way is that the keyguard show/hide state comes
down from PhoneWindowManager, and StatusBar was only updating the state
on StatusBarState change. StatusBarState is a sysui-only state, and
doesn't adequately track window manager state.

Fixes: 116806599
Test: unlock phone with fingerprint and swipe for notifications during
the animation.

Change-Id: I220643e115880ff29df92e1fcc76dfe0424a00f6
parent bd70ed4c
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.phone.KeyguardBouncer.BouncerExpansionCallback;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
import com.android.systemui.statusbar.policy.KeyguardMonitorImpl;

import java.io.PrintWriter;
import java.util.ArrayList;
@@ -124,7 +125,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb

    // Dismiss action to be launched when we stop dozing or the keyguard is gone.
    private DismissWithActionRequest mPendingWakeupAction;
    private final KeyguardMonitor mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
    private final KeyguardMonitorImpl mKeyguardMonitor =
            (KeyguardMonitorImpl) Dependency.get(KeyguardMonitor.class);
    private final NotificationMediaManager mMediaManager =
            Dependency.get(NotificationMediaManager.class);

@@ -202,6 +204,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    public void show(Bundle options) {
        mShowing = true;
        mStatusBarWindowController.setKeyguardShowing(true);
        mKeyguardMonitor.notifyKeyguardState(
                mShowing, mKeyguardMonitor.isSecure(), mKeyguardMonitor.isOccluded());
        reset(true /* hideBouncerWhenShowing */);
        StatsLog.write(StatsLog.KEYGUARD_STATE_CHANGED,
            StatsLog.KEYGUARD_STATE_CHANGED__STATE__SHOWN);
@@ -424,6 +428,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
     */
    public void hide(long startTime, long fadeoutDuration) {
        mShowing = false;
        mKeyguardMonitor.notifyKeyguardState(
                mShowing, mKeyguardMonitor.isSecure(), mKeyguardMonitor.isOccluded());
        launchPendingWakeupAction();

        if (KeyguardUpdateMonitor.getInstance(mContext).needsSlowUnlockTransition()) {