Keep screen bright until boot completed.
Fixes b/2262575 (device boots into darkness)
Change-Id: Ib1fb3fcfd4a389d8aa5803a60e07660cfbe4fe47
Signed-off-by: Mike Lockwood <lockwood@android.com>
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 @@
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 @@
}
}
+ 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 @@
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 @@
private void setTimeoutLocked(long now, int nextState)
{
- if (mDoneBooting) {
+ if (mBootCompleted) {
mHandler.removeCallbacks(mTimeoutTask);
mTimeoutTask.nextState = nextState;
long when = now;
@@ -1385,7 +1396,7 @@
return;
}
- if (!mDoneBooting && !mUseSoftwareAutoBrightness) {
+ if (!mBootCompleted && !mUseSoftwareAutoBrightness) {
newState |= ALL_BRIGHT;
}
@@ -2343,6 +2354,13 @@
} finally {
Binder.restoreCallingIdentity(identity);
}
+ }
+ }
+
+ void bootCompleted() {
+ Log.d(TAG, "bootCompleted");
+ synchronized (mLocks) {
+ mBootCompleted = true;
userActivity(SystemClock.uptimeMillis(), false, BUTTON_EVENT, true);
updateWakeLockLocked();
mLocks.notifyAll();