From 4eb36cfdcabb51f67a887d867de9559966606d86 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Wed, 7 Nov 2012 11:45:30 -0800 Subject: [PATCH] Storing boot completed in KeyguardUpdateMonitor so it is persistent (issue 7492235) Change-Id: I736816dac8cea47632fbdbc75b367f2c6216dff7 --- .../policy/impl/keyguard/KeyguardHostView.java | 4 +--- .../policy/impl/keyguard/KeyguardUpdateMonitor.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java index 1ee0e867d404d..d9c11a4b077fc 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -75,7 +75,6 @@ public class KeyguardHostView extends KeyguardViewBase { private SecurityMode mCurrentSecuritySelection = SecurityMode.Invalid; private int mAppWidgetToShow; - private boolean mBootCompleted = false; private boolean mCheckAppWidgetConsistencyOnBootCompleted = false; protected Runnable mLaunchRunnable; @@ -147,7 +146,6 @@ public class KeyguardHostView extends KeyguardViewBase { new KeyguardUpdateMonitorCallback() { @Override public void onBootCompleted() { - mBootCompleted = true; if (mCheckAppWidgetConsistencyOnBootCompleted) { checkAppWidgetConsistency(); mSwitchPageRunnable.run(); @@ -1107,7 +1105,7 @@ public class KeyguardHostView extends KeyguardViewBase { public void checkAppWidgetConsistency() { // Since this method may bind a widget (which we can't do until boot completed) we // may have to defer it until after boot complete. - if (!mBootCompleted) { + if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { mCheckAppWidgetConsistencyOnBootCompleted = true; return; } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java index 51f0418369f62..e1007f9f2e9d7 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java @@ -95,6 +95,7 @@ public class KeyguardUpdateMonitor { private int mRingMode; private int mPhoneState; private boolean mKeyguardIsVisible; + private boolean mBootCompleted; // Device provisioning state private boolean mDeviceProvisioned; @@ -431,6 +432,7 @@ public class KeyguardUpdateMonitor { * Handle {@link #MSG_BOOT_COMPLETED} */ protected void handleBootCompleted() { + mBootCompleted = true; for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { @@ -439,6 +441,14 @@ public class KeyguardUpdateMonitor { } } + /** + * We need to store this state in the KeyguardUpdateMonitor since this class will not be + * destroyed. + */ + public boolean hasBootCompleted() { + return mBootCompleted; + } + /** * Handle {@link #MSG_USER_SWITCHED} */