diff options
author | Craig Mautner <cmautner@google.com> | 2012-06-06 14:39:29 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-06-06 14:39:29 -0700 |
commit | 8c4b40eceba39a493a1d01ed83decc8b43fbfb5d (patch) | |
tree | 7539eb5446e3f8a3a6d5a4894855056e25033181 /services/java/com/android/server/PowerManagerService.java | |
parent | 6cd19e0266b3f4277f13dab7e9a86ebdd9905ee9 (diff) | |
parent | 3793368f72b284950aa917273193e30739c8cdf7 (diff) |
Merge "Set screen brightness to match sensor at power on." into jb-dev
Diffstat (limited to 'services/java/com/android/server/PowerManagerService.java')
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index 5aa0d16eac4d..dda6323c5c20 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -244,6 +244,7 @@ public class PowerManagerService extends IPowerManager.Stub private Handler mHandler; private final TimeoutTask mTimeoutTask = new TimeoutTask(); private ScreenBrightnessAnimator mScreenBrightnessAnimator; + private boolean mWaitingForFirstLightSensor = false; private boolean mStillNeedSleepNotification; private boolean mIsPowered = false; private IActivityManager mActivityService; @@ -1755,7 +1756,11 @@ public class PowerManagerService extends IPowerManager.Stub mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); if (mUseSoftwareAutoBrightness) { enableLightSensorLocked(on); - if (!on) { + if (on) { + // If AutoBrightness is enabled, set the brightness immediately after the + // next sensor value is received. + mWaitingForFirstLightSensor = mAutoBrightessEnabled; + } else { // make sure button and key backlights are off too mButtonLight.turnOff(); mKeyboardLight.turnOff(); @@ -2636,7 +2641,7 @@ public class PowerManagerService extends IPowerManager.Stub private void lightSensorChangedLocked(int value, boolean immediate) { if (mDebugLightSensor) { - Slog.d(TAG, "lightSensorChangedLocked " + value); + Slog.d(TAG, "lightSensorChangedLocked value=" + value + " immediate=" + immediate); } // Don't do anything if the screen is off. @@ -3212,7 +3217,9 @@ public class PowerManagerService extends IPowerManager.Stub private void enableLightSensorLocked(boolean enable) { if (mDebugLightSensor) { Slog.d(TAG, "enableLightSensorLocked enable=" + enable - + " mAutoBrightessEnabled=" + mAutoBrightessEnabled); + + " mLightSensorEnabled=" + mLightSensorEnabled + + " mAutoBrightessEnabled=" + mAutoBrightessEnabled + + " mWaitingForFirstLightSensor=" + mWaitingForFirstLightSensor); } if (!mAutoBrightessEnabled) { enable = false; @@ -3226,8 +3233,8 @@ public class PowerManagerService extends IPowerManager.Stub // reset our highest value when reenabling mHighestLightSensorValue = -1; // force recompute of backlight values - if (mLightSensorValue >= 0) { - int value = (int)mLightSensorValue; + final int value = (int)mLightSensorValue; + if (value >= 0) { mLightSensorValue = -1; handleLightSensorValue(value, true); } @@ -3291,8 +3298,9 @@ public class PowerManagerService extends IPowerManager.Stub private void handleLightSensorValue(int value, boolean immediate) { long milliseconds = SystemClock.elapsedRealtime(); - if (mLightSensorValue == -1 || - milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) { + if (mLightSensorValue == -1 + || milliseconds < mLastScreenOnTime + mLightSensorWarmupTime + || mWaitingForFirstLightSensor) { // process the value immediately if screen has just turned on mHandler.removeCallbacks(mAutoBrightnessTask); mLightSensorPendingDecrease = false; @@ -3327,7 +3335,10 @@ public class PowerManagerService extends IPowerManager.Stub if (isScreenTurningOffLocked()) { return; } - handleLightSensorValue((int)event.values[0], false); + handleLightSensorValue((int)event.values[0], mWaitingForFirstLightSensor); + if (mWaitingForFirstLightSensor) { + mWaitingForFirstLightSensor = false; + } } } |