summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/PowerManagerService.java
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2012-06-06 14:45:56 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-06 14:45:56 -0700
commitdd749e05c17200542aca1ecd45951d0c98af8ab4 (patch)
tree8d0491b7ff5f961ba45f055bb902cdadd94d1581 /services/java/com/android/server/PowerManagerService.java
parent9a8eed3a4daa2745fd0fc386d42d2f208ad362e6 (diff)
parent55ab60cd7fe97d95f997d5f0761a5e571a88aa14 (diff)
am 55ab60cd: am 8c4b40ec: Merge "Set screen brightness to match sensor at power on." into jb-dev
* commit '55ab60cd7fe97d95f997d5f0761a5e571a88aa14': Set screen brightness to match sensor at power on.
Diffstat (limited to 'services/java/com/android/server/PowerManagerService.java')
-rw-r--r--services/java/com/android/server/PowerManagerService.java27
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 24ce0019c1a6..b9d82faf1795 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;
+ }
}
}