From b42ab0f41cb9dc5988d152ba660d39b3910ae373 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Thu, 4 Mar 2010 08:02:44 -0500 Subject: [PATCH] Delay setting initial screen brightness until after the sensors are initialized. Some devices will not activate the light sensor properly on boot unless we do this. Change-Id: Ia27b6fc2d515c31eb8597e1d52127d70e2643bd7 BUG: 2269307 Signed-off-by: Mike Lockwood --- .../android/server/PowerManagerService.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index 11b966ee87ef3..0189c60742ce6 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -557,14 +557,6 @@ class PowerManagerService extends IPowerManager.Stub }); updateSettingsValues(); - if (mUseSoftwareAutoBrightness) { - // turn the screen on - setPowerState(SCREEN_BRIGHT); - } else { - // turn everything on - setPowerState(ALL_BRIGHT); - } - synchronized (mHandlerThread) { mInitComplete = true; mHandlerThread.notifyAll(); @@ -2486,9 +2478,21 @@ class PowerManagerService extends IPowerManager.Stub enableLightSensor(true); } + // wait until sensors are enabled before turning on screen. + // some devices will not activate the light sensor properly on boot + // unless we do this. + if (mUseSoftwareAutoBrightness) { + // turn the screen on + setPowerState(SCREEN_BRIGHT); + } else { + // turn everything on + setPowerState(ALL_BRIGHT); + } + synchronized (mLocks) { Slog.d(TAG, "system ready!"); mDoneBooting = true; + long identity = Binder.clearCallingIdentity(); try { mBatteryStats.noteScreenBrightness(getPreferredBrightness());