diff options
| author | Mike Lockwood <lockwood@android.com> | 2009-10-27 15:47:02 -0400 |
|---|---|---|
| committer | Mike Lockwood <lockwood@android.com> | 2009-10-27 15:47:03 -0400 |
| commit | dd9668ec63887136b62642546d4b82ff21db17f8 (patch) | |
| tree | 021a87092df4ed837468fc790b0410391db3a87e /services | |
| parent | 2d155d264e5cefc27abf2c5020fcfa06bde755ec (diff) | |
| download | frameworks_base-dd9668ec63887136b62642546d4b82ff21db17f8.zip frameworks_base-dd9668ec63887136b62642546d4b82ff21db17f8.tar.gz frameworks_base-dd9668ec63887136b62642546d4b82ff21db17f8.tar.bz2 | |
PowerManagerService: Animate LCD backlight changes due to autobrightness support.
Change-Id: I9c242127df801125c30f399198d1f7e9c8579612
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'services')
| -rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index 5c4aa79..927c1b3 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -131,6 +131,8 @@ class PowerManagerService extends IPowerManager.Stub static final boolean ANIMATE_KEYBOARD_LIGHTS = false; static final int ANIM_STEPS = 60/4; + // Slower animation for autobrightness changes + static final int AUTOBRIGHTNESS_ANIM_STEPS = 60; // These magic numbers are the initial state of the LEDs at boot. Ideally // we should read them from the driver, but our current hardware returns 0 @@ -224,7 +226,7 @@ class PowerManagerService extends IPowerManager.Stub // could be either static or controllable at runtime private static final boolean mSpew = false; - private static final boolean mDebugLightSensor = false; + private static final boolean mDebugLightSensor = (false || mSpew); /* static PrintStream mLog; @@ -1925,27 +1927,45 @@ class PowerManagerService extends IPowerManager.Stub Log.d(TAG, "keyboardValue " + keyboardValue); } + boolean startAnimation = false; if (mScreenBrightnessOverride < 0) { - mHardware.setLightBrightness_UNCHECKED(HardwareService.LIGHT_ID_BACKLIGHT, - lcdValue); - } - mHardware.setLightBrightness_UNCHECKED(HardwareService.LIGHT_ID_BUTTONS, - buttonValue); - mHardware.setLightBrightness_UNCHECKED(HardwareService.LIGHT_ID_KEYBOARD, - keyboardValue); - - // update our animation state - if (ANIMATE_SCREEN_LIGHTS) { - mScreenBrightness.curValue = lcdValue; - mScreenBrightness.animating = false; + if (ANIMATE_SCREEN_LIGHTS) { + if (mScreenBrightness.setTargetLocked(lcdValue, + AUTOBRIGHTNESS_ANIM_STEPS, INITIAL_SCREEN_BRIGHTNESS, + (int)mScreenBrightness.curValue)) { + startAnimation = true; + } + } else { + mHardware.setLightBrightness_UNCHECKED(HardwareService.LIGHT_ID_BACKLIGHT, + lcdValue); + } } if (ANIMATE_BUTTON_LIGHTS) { - mButtonBrightness.curValue = buttonValue; - mButtonBrightness.animating = false; + if (mButtonBrightness.setTargetLocked(buttonValue, + AUTOBRIGHTNESS_ANIM_STEPS, INITIAL_BUTTON_BRIGHTNESS, + (int)mButtonBrightness.curValue)) { + startAnimation = true; + } + } else { + mHardware.setLightBrightness_UNCHECKED(HardwareService.LIGHT_ID_BUTTONS, + buttonValue); } if (ANIMATE_KEYBOARD_LIGHTS) { - mKeyboardBrightness.curValue = keyboardValue; - mKeyboardBrightness.animating = false; + if (mKeyboardBrightness.setTargetLocked(keyboardValue, + AUTOBRIGHTNESS_ANIM_STEPS, INITIAL_BUTTON_BRIGHTNESS, + (int)mKeyboardBrightness.curValue)) { + startAnimation = true; + } + } else { + mHardware.setLightBrightness_UNCHECKED(HardwareService.LIGHT_ID_KEYBOARD, + keyboardValue); + } + if (startAnimation) { + if (mDebugLightSensor) { + Log.i(TAG, "lightSensorChangedLocked scheduling light animator"); + } + mHandler.removeCallbacks(mLightAnimator); + mHandler.post(mLightAnimator); } } } @@ -2041,6 +2061,7 @@ class PowerManagerService extends IPowerManager.Stub if (mAutoBrightessEnabled != enabled) { mAutoBrightessEnabled = enabled; // reset computed brightness + mLightSensorValue = -1; mLightSensorBrightness = -1; if (mHasHardwareAutoBrightness) { @@ -2263,14 +2284,17 @@ class PowerManagerService extends IPowerManager.Stub if (ANIMATE_SCREEN_LIGHTS) { mScreenBrightness.curValue = brightness; mScreenBrightness.animating = false; + mScreenBrightness.targetValue = -1; } if (ANIMATE_KEYBOARD_LIGHTS) { mKeyboardBrightness.curValue = brightness; mKeyboardBrightness.animating = false; + mKeyboardBrightness.targetValue = -1; } if (ANIMATE_BUTTON_LIGHTS) { mButtonBrightness.curValue = brightness; mButtonBrightness.animating = false; + mButtonBrightness.targetValue = -1; } } |
