From 6aea1154bae3a0935fdb9b09b2d91d9548232eb0 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Fri, 18 Feb 2011 13:23:13 -0500 Subject: [PATCH] DO NOT MERGE: KeyguardManager: Add isKeyguardLocked() and isKeyguardSecure() BUG: 3402847 Change-Id: I7cb199763e8d5386914b4c2173c9e1579b08674c Signed-off-by: Mike Lockwood --- core/java/android/app/KeyguardManager.java | 34 +++++++++++++++++++ core/java/android/view/IWindowManager.aidl | 2 ++ .../android/view/WindowManagerPolicy.java | 18 ++++++++++ .../policy/impl/PhoneWindowManager.java | 11 ++++++ .../android/server/WindowManagerService.java | 8 +++++ 5 files changed, 73 insertions(+) diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java index e3d8e2047c96a..1e8743cae68a8 100644 --- a/core/java/android/app/KeyguardManager.java +++ b/core/java/android/app/KeyguardManager.java @@ -116,6 +116,40 @@ public class KeyguardManager { return new KeyguardLock(tag); } + /** + * isKeyguardLocked + * + * Return whether the keyguard is currently locked. + * + * @return true if in keyguard is locked. + * + * @hide + */ + public boolean isKeyguardLocked() { + try { + return mWM.isKeyguardSecure(); + } catch (RemoteException ex) { + return false; + } + } + + /** + * isKeyguardSecure + * + * Return whether the keyguard requires a password to unlock. + * + * @return true if in keyguard is secure. + * + * @hide + */ + public boolean isKeyguardSecure() { + try { + return mWM.isKeyguardSecure(); + } catch (RemoteException ex) { + return false; + } + } + /** * If keyguard screen is showing or in restricted key input mode (i.e. in * keyguard password emergency screen). When in such mode, certain keys, diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index 51653df16d1c7..dd8242a6fef19 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -100,6 +100,8 @@ interface IWindowManager void disableKeyguard(IBinder token, String tag); void reenableKeyguard(IBinder token); void exitKeyguardSecurely(IOnKeyguardExitResult callback); + boolean isKeyguardLocked(); + boolean isKeyguardSecure(); boolean inKeyguardRestrictedInputMode(); void closeSystemDialogs(String reason); diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index ad069029eabe3..be68cb9e4a449 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -753,6 +753,24 @@ public interface WindowManagerPolicy { */ void exitKeyguardSecurely(OnKeyguardExitResult callback); + /** + * isKeyguardLocked + * + * Return whether the keyguard is currently locked. + * + * @return true if in keyguard is locked. + */ + public boolean isKeyguardLocked(); + + /** + * isKeyguardSecure + * + * Return whether the keyguard requires a password to unlock. + * + * @return true if in keyguard is secure. + */ + public boolean isKeyguardSecure(); + /** * inKeyguardRestrictedKeyInputMode * diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 066daa89d2674..2231ad9185f1b 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -2430,6 +2430,17 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mKeyguardMediator.isShowingAndNotHidden(); } + + /** {@inheritDoc} */ + public boolean isKeyguardLocked() { + return keyguardOn(); + } + + /** {@inheritDoc} */ + public boolean isKeyguardSecure() { + return mKeyguardMediator.isSecure(); + } + /** {@inheritDoc} */ public boolean inKeyguardRestrictedKeyInputMode() { return mKeyguardMediator.isInputRestricted(); diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 2efb4449eb908..a3c3b86754434 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -4746,6 +4746,14 @@ public class WindowManagerService extends IWindowManager.Stub return mPolicy.inKeyguardRestrictedKeyInputMode(); } + public boolean isKeyguardLocked() { + return mPolicy.isKeyguardLocked(); + } + + public boolean isKeyguardSecure() { + return mPolicy.isKeyguardSecure(); + } + public void closeSystemDialogs(String reason) { synchronized(mWindowMap) { for (int i=mWindows.size()-1; i>=0; i--) {