diff options
author | Jim Miller <jaggies@google.com> | 2014-12-11 23:41:03 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-12-11 23:41:03 +0000 |
commit | 0ca6b7f98085c079ccfb4b799fba5f570380a827 (patch) | |
tree | ed7f4d19feaa11d7691ee7a71d304eda789f8126 /policy/src | |
parent | b21a7ad02e43900ea5480e796cb1518bd5829e3f (diff) | |
parent | 4841a787b3380ba045a465e347668729b19f3d79 (diff) | |
download | frameworks_base-0ca6b7f98085c079ccfb4b799fba5f570380a827.zip frameworks_base-0ca6b7f98085c079ccfb4b799fba5f570380a827.tar.gz frameworks_base-0ca6b7f98085c079ccfb4b799fba5f570380a827.tar.bz2 |
am 4841a787: Merge "Attempt to fix keyguard missing bug" into lmp-mr1-dev
* commit '4841a787b3380ba045a465e347668729b19f3d79':
Attempt to fix keyguard missing bug
Diffstat (limited to 'policy/src')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java index 618ba1e..e499299 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java @@ -37,6 +37,7 @@ public class KeyguardServiceDelegate { private final Context mContext; private final View mScrim; // shown if keyguard crashes private final KeyguardState mKeyguardState = new KeyguardState(); + private ShowListener mShowListenerWhenConnect; /* package */ static final class KeyguardState { KeyguardState() { @@ -130,7 +131,13 @@ public class KeyguardServiceDelegate { // If the system is ready, it means keyguard crashed and restarted. mKeyguardService.onSystemReady(); // This is used to hide the scrim once keyguard displays. - mKeyguardService.onScreenTurnedOn(new KeyguardShowDelegate(null)); + mKeyguardService.onScreenTurnedOn(new KeyguardShowDelegate( + mShowListenerWhenConnect)); + if (mShowListenerWhenConnect != null) { + Log.v(TAG, "*** hiding scrim because keyguard wasn't ready"); + mShowListenerWhenConnect = null; + hideScrim(); + } } if (mKeyguardState.bootCompleted) { mKeyguardService.onBootCompleted(); @@ -212,9 +219,10 @@ public class KeyguardServiceDelegate { } else { // try again when we establish a connection Slog.w(TAG, "onScreenTurnedOn(): no keyguard service!"); - // This shouldn't happen, but if it does, invoke the listener immediately - // to avoid a dark screen... - showListener.onShown(null); + // This shouldn't happen, but if it does, show the scrim immediately and + // invoke the listener's callback after the service actually connects. + mShowListenerWhenConnect = showListener; + showScrim(); } mKeyguardState.screenIsOn = true; } @@ -280,7 +288,6 @@ public class KeyguardServiceDelegate { lp.setTitle("KeyguardScrim"); WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); wm.addView(view, lp); - view.setVisibility(View.GONE); // Disable pretty much everything in statusbar until keyguard comes back and we know // the state of the world. view.setSystemUiVisibility(View.STATUS_BAR_DISABLE_HOME |