Make sure to call dismissKeyguard after setOccluded

If we call it before, SystemUI will not dismiss the Keyguard as
it is still occluded in that state.

Change-Id: I15cf9cc43b9a2b747bfd224a6dfbd769eee19d69
Fixes: 32202560
This commit is contained in:
Jorim Jaggi
2016-10-24 15:40:06 -07:00
parent 9cac4568e5
commit ec50931d88

View File

@@ -5293,18 +5293,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
} }
} else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) { } else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) {
mKeyguardHidden = false; mKeyguardHidden = false;
boolean willDismiss = false; boolean dismissKeyguard = false;
final boolean trusted = mKeyguardDelegate.isTrusted();
if (mDismissKeyguard == DISMISS_KEYGUARD_START) { if (mDismissKeyguard == DISMISS_KEYGUARD_START) {
final boolean trusted = mKeyguardDelegate.isTrusted(); final boolean willDismiss = trusted && mKeyguardOccluded
willDismiss = trusted && mKeyguardOccluded && mKeyguardDelegate != null && mKeyguardDelegate != null && mKeyguardDelegate.isShowing();
&& mKeyguardDelegate.isShowing();
if (willDismiss) { if (willDismiss) {
mCurrentlyDismissingKeyguard = true; mCurrentlyDismissingKeyguard = true;
} }
dismissKeyguard = true;
// Only launch the next keyguard unlock window once per window.
mHandler.post(() -> mKeyguardDelegate.dismiss(
trusted /* allowWhileOccluded */));
} }
// If we are currently dismissing Keyguard, there is no need to unocclude it. // If we are currently dismissing Keyguard, there is no need to unocclude it.
@@ -5315,6 +5312,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {
| FINISH_LAYOUT_REDO_WALLPAPER; | FINISH_LAYOUT_REDO_WALLPAPER;
} }
} }
if (dismissKeyguard) {
// Only launch the next keyguard unlock window once per window.
mHandler.post(() -> mKeyguardDelegate.dismiss(
trusted /* allowWhileOccluded */));
}
} else { } else {
mWinDismissingKeyguard = null; mWinDismissingKeyguard = null;
mSecureDismissingKeyguard = false; mSecureDismissingKeyguard = false;