From 6a3cceb4d930e85d3b9b273b62bcd4f62b588093 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Fri, 11 Oct 2013 21:03:22 -0700 Subject: [PATCH] Fix problem where PhoneWindowManager waits for keyguard to draw This fixes a problem where PhoneWindowManager times out waiting for keyguard to draw when it's disabled. Instead, we pass a null token back which allows PhoneWindowManager to continue. Fixes bug 11190932 Change-Id: I041ea1d88dca681476d9477a3aab54559976b312 --- .../com/android/keyguard/KeyguardViewManager.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java index d37aaaf112157..a0cad8444ea91 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java @@ -431,7 +431,18 @@ public class KeyguardViewManager { public synchronized void onScreenTurnedOn(final IKeyguardShowCallback callback) { if (DEBUG) Log.d(TAG, "onScreenTurnedOn()"); mScreenOn = true; - final IBinder token = mKeyguardHost == null ? null : mKeyguardHost.getWindowToken(); + final IBinder token; + + // If keyguard is disabled, we need to inform PhoneWindowManager with a null + // token so it doesn't wait for us to draw... + final boolean disabled = + mLockPatternUtils.isLockScreenDisabled() && !mLockPatternUtils.isSecure(); + if (mKeyguardHost == null || disabled) { + token = null; + } else { + token = mKeyguardHost.getWindowToken(); + } + if (mKeyguardView != null) { mKeyguardView.onScreenTurnedOn();