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

Commit 2434ff8f authored by Matt Pietal's avatar Matt Pietal
Browse files

Ensure keyguard shows, and tells WM

Many race conditions can occur, especially with SideFPS. In this case,
a successful auth followed by numerous power button pushes, and having
distinct home and lockscreen wallpapers, produced a scenario where
keyguard was correctly thinking it should be visible but was not
always telling WM. This left the device in a state with just a blank
screen, behaving in a manner like it was occluded by another activity.

Always tell WM that sysui is showing, as there should be no harm in
telling it again (just in case).

Fixes: 301409430
Fixes: 300899918
Test: race condition - Enable 2 different wallpapers on
home/lockscreen, setup sidefps, authenticate, and slam the power
button over and over. This is easier to accomplish if you disabling
the double-tap camera launch gesture

Change-Id: I5c7137dfcf20fb27c697a60df21141d15979e03e
(cherry picked from commit 0f0cdccd)
parent 6f4c93a5
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -3236,7 +3236,11 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
                        + "mPendingLock=" + mPendingLock + "."
                        + "mPendingLock=" + mPendingLock + "."
                        + "One of these being false means we re-locked the device during unlock. "
                        + "One of these being false means we re-locked the device during unlock. "
                        + "Do not proceed to finish keyguard exit and unlock.");
                        + "Do not proceed to finish keyguard exit and unlock.");
                doKeyguardLocked(null);
                finishSurfaceBehindRemoteAnimation(true /* showKeyguard */);
                finishSurfaceBehindRemoteAnimation(true /* showKeyguard */);
                // Ensure WM is notified that we made a decision to show
                setShowingLocked(true /* showing */, true /* force */);

                return;
                return;
            }
            }