Merge "Fix KeyguardManager.isSecure() to observe work profile" into nyc-dev
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index b0d204b..908a99d 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -1121,10 +1121,11 @@
* isKeyguardSecure
*
* Return whether the keyguard requires a password to unlock.
+ * @param userId
*
* @return true if in keyguard is secure.
*/
- public boolean isKeyguardSecure();
+ public boolean isKeyguardSecure(int userId);
/**
* Return whether the keyguard is on.
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index e0c56d7..0a5b82a 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -3392,7 +3392,7 @@
}
if (down) {
- long shortcutCode = (long) keyCode;
+ long shortcutCode = keyCode;
if (event.isCtrlPressed()) {
shortcutCode |= ((long) KeyEvent.META_CTRL_ON) << Integer.SIZE;
}
@@ -3511,6 +3511,7 @@
return false;
}
+ @Override
public void registerShortcutKey(long shortcutCode, IShortcutService shortcutService)
throws RemoteException {
synchronized (mLock) {
@@ -4822,7 +4823,7 @@
mShowingLockscreen = false;
mShowingDream = false;
mWinShowWhenLocked = null;
- mKeyguardSecure = isKeyguardSecure();
+ mKeyguardSecure = isKeyguardSecure(mCurrentUserId);
mKeyguardSecureIncludingHidden = mKeyguardSecure
&& (mKeyguardDelegate != null && mKeyguardDelegate.isShowing());
}
@@ -6299,9 +6300,9 @@
/** {@inheritDoc} */
@Override
- public boolean isKeyguardSecure() {
+ public boolean isKeyguardSecure(int userId) {
if (mKeyguardDelegate == null) return false;
- return mKeyguardDelegate.isSecure();
+ return mKeyguardDelegate.isSecure(userId);
}
/** {@inheritDoc} */
@@ -6331,6 +6332,7 @@
}
}
+ @Override
public void notifyActivityDrawnForKeyguardLw() {
if (mKeyguardDelegate != null) {
mHandler.post(new Runnable() {
@@ -6846,7 +6848,7 @@
private void updateLockScreenTimeout() {
synchronized (mScreenLockTimeout) {
boolean enable = (mAllowLockscreenWhenOn && mAwake &&
- mKeyguardDelegate != null && mKeyguardDelegate.isSecure());
+ mKeyguardDelegate != null && mKeyguardDelegate.isSecure(mCurrentUserId));
if (mLockScreenTimerActive != enable) {
if (enable) {
if (localLOGV) Log.v(TAG, "setting lockscreen timer");
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
index 52e5880..7e27558 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
@@ -226,9 +226,9 @@
}
}
- public boolean isSecure() {
+ public boolean isSecure(int userId) {
if (mKeyguardService != null) {
- mKeyguardState.secure = mKeyguardService.isSecure();
+ mKeyguardState.secure = mKeyguardService.isSecure(userId);
}
return mKeyguardState.secure;
}
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java
index dacdec0..57e8857 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java
@@ -234,8 +234,8 @@
return mKeyguardStateMonitor.isShowing();
}
- public boolean isSecure() {
- return mKeyguardStateMonitor.isSecure();
+ public boolean isSecure(int userId) {
+ return mKeyguardStateMonitor.isSecure(userId);
}
public boolean isInputRestricted() {
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java
index 30cff03..138f068 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java
@@ -62,8 +62,8 @@
return mIsShowing;
}
- public boolean isSecure() {
- return mLockPatternUtils.isSecure(getCurrentUser()) || mSimSecure;
+ public boolean isSecure(int userId) {
+ return mLockPatternUtils.isSecure(userId) || mSimSecure;
}
public boolean isInputRestricted() {
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index a0b8c35..678eaa1 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -5344,9 +5344,10 @@
@Override
public boolean isKeyguardSecure() {
+ int userId = UserHandle.getCallingUserId();
long origId = Binder.clearCallingIdentity();
try {
- return mPolicy.isKeyguardSecure();
+ return mPolicy.isKeyguardSecure(userId);
} finally {
Binder.restoreCallingIdentity(origId);
}