diff options
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index bde03f3..38269e1 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -154,6 +154,7 @@ class PowerManagerService extends IPowerManager.Stub private final int MY_UID; private boolean mDoneBooting = false; + private boolean mBootCompleted = false; private int mStayOnConditions = 0; private int[] mBroadcastQueue = new int[] { -1, -1, -1 }; private int[] mBroadcastWhy = new int[3]; @@ -351,6 +352,13 @@ class PowerManagerService extends IPowerManager.Stub } } + private final class BootCompletedReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + bootCompleted(); + } + } + /** * Set the setting that determines whether the device stays on when plugged in. * The argument is a bit string, with each bit specifying a power source that, @@ -498,6 +506,9 @@ class PowerManagerService extends IPowerManager.Stub IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_BATTERY_CHANGED); mContext.registerReceiver(new BatteryReceiver(), filter); + filter = new IntentFilter(); + filter.addAction(Intent.ACTION_BOOT_COMPLETED); + mContext.registerReceiver(new BootCompletedReceiver(), filter); // Listen for Gservices changes IntentFilter gservicesChangedFilter = @@ -970,7 +981,7 @@ class PowerManagerService extends IPowerManager.Stub private void setTimeoutLocked(long now, int nextState) { - if (mDoneBooting) { + if (mBootCompleted) { mHandler.removeCallbacks(mTimeoutTask); mTimeoutTask.nextState = nextState; long when = now; @@ -1385,7 +1396,7 @@ class PowerManagerService extends IPowerManager.Stub return; } - if (!mDoneBooting && !mUseSoftwareAutoBrightness) { + if (!mBootCompleted && !mUseSoftwareAutoBrightness) { newState |= ALL_BRIGHT; } @@ -2343,6 +2354,13 @@ class PowerManagerService extends IPowerManager.Stub } finally { Binder.restoreCallingIdentity(identity); } + } + } + + void bootCompleted() { + Log.d(TAG, "bootCompleted"); + synchronized (mLocks) { + mBootCompleted = true; userActivity(SystemClock.uptimeMillis(), false, BUTTON_EVENT, true); updateWakeLockLocked(); mLocks.notifyAll(); |