diff options
| author | 2017-12-14 03:29:50 +0000 | |
|---|---|---|
| committer | 2017-12-14 03:29:50 +0000 | |
| commit | de53723d5b171c0eca14d479569bb9403a24c26c (patch) | |
| tree | 126da48b96d6694870c5b2fdd4504030fbb59deb | |
| parent | 9bc6eaca2c8f1c60cb2b7abfa0afc880badd1f44 (diff) | |
| parent | 35fbb312e9a185d3d6ed20697b486faae8409463 (diff) | |
Merge "Keyguard can be on even if not showing"
3 files changed, 24 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 5f03dd262fa4..7c75f777ff1d 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3334,7 +3334,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } boolean keyguardOn() { - return isKeyguardShowingAndNotOccluded(); + return isKeyguardShowingAndNotOccluded() || inKeyguardRestrictedKeyInputMode(); } private static final int[] WINDOW_TYPES_WHERE_HOME_DOESNT_WORK = { @@ -6876,6 +6876,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mKeyguardOccluded; } + /** {@inheritDoc} */ + @Override + public boolean inKeyguardRestrictedKeyInputMode() { + if (mKeyguardDelegate == null) return false; + return mKeyguardDelegate.isInputRestricted(); + } + @Override public void dismissKeyguardLw(IKeyguardDismissCallback callback) { if (mKeyguardDelegate != null && mKeyguardDelegate.isShowing()) { diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java index bcb7212b620c..cfe4088781b4 100644 --- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java +++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java @@ -1360,6 +1360,17 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { public boolean isKeyguardTrustedLw(); /** + * inKeyguardRestrictedKeyInputMode + * + * If keyguard screen is showing or in restricted key input mode (i.e. in + * keyguard password emergency screen). When in such mode, certain keys, + * such as the Home key and the right soft keys, don't work. + * + * @return true if in keyguard restricted input mode. + */ + public boolean inKeyguardRestrictedKeyInputMode(); + + /** * Ask the policy to dismiss the keyguard, if it is currently shown. * * @param callback Callback to be informed about the result. diff --git a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java index 481c898414ac..c73534196f45 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java +++ b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java @@ -411,6 +411,11 @@ class TestWindowManagerPolicy implements WindowManagerPolicy { } @Override + public boolean inKeyguardRestrictedKeyInputMode() { + return false; + } + + @Override public void dismissKeyguardLw(@Nullable IKeyguardDismissCallback callback) { } |