summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-12-14 03:29:50 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-12-14 03:29:50 +0000
commitde53723d5b171c0eca14d479569bb9403a24c26c (patch)
tree126da48b96d6694870c5b2fdd4504030fbb59deb
parent9bc6eaca2c8f1c60cb2b7abfa0afc880badd1f44 (diff)
parent35fbb312e9a185d3d6ed20697b486faae8409463 (diff)
Merge "Keyguard can be on even if not showing"
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java9
-rw-r--r--services/core/java/com/android/server/policy/WindowManagerPolicy.java11
-rw-r--r--services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java5
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) {
}