diff --git a/policy/com/android/internal/policy/impl/KeyguardViewManager.java b/policy/com/android/internal/policy/impl/KeyguardViewManager.java index 0facbf6cbbd2e..910df8d0e8701 100644 --- a/policy/com/android/internal/policy/impl/KeyguardViewManager.java +++ b/policy/com/android/internal/policy/impl/KeyguardViewManager.java @@ -197,10 +197,14 @@ public class KeyguardViewManager implements KeyguardWindowController { * * @param keyCode The wake key. */ - public void wakeWhenReadyTq(int keyCode) { + public boolean wakeWhenReadyTq(int keyCode) { if (DEBUG) Log.d(TAG, "wakeWhenReady(" + keyCode + ")"); if (mKeyguardView != null) { mKeyguardView.wakeWhenReadyTq(keyCode); + return true; + } else { + Log.w(TAG, "mKeyguardView is null in wakeWhenReadyTq"); + return false; } } diff --git a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java index 3ae1dee6bba94..5a527726293dd 100644 --- a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java +++ b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java @@ -884,7 +884,10 @@ public class KeyguardViewMediator implements KeyguardViewCallback, // this should result in a call to 'poke wakelock' which will set a timeout // on releasing the wakelock - mKeyguardViewManager.wakeWhenReadyTq(keyCode); + if (!mKeyguardViewManager.wakeWhenReadyTq(keyCode)) { + // poke wakelock ourselves if keyguard is no longer active + pokeWakelock(); + } /** * Now that the keyguard is ready and has poked the wake lock, we can