LightsService cleanup:

Add Light subclass to replace LightsService light setting methods
Remove LightsService.setAttentionLight() and LightsService.pulseBreathingLight()
Add support for Wifi and Bluetooth lights

Change-Id: I707f53cda27481c25649f402567a665d52e9cb62
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2009-11-27 14:25:58 -05:00
parent 331c7788a8
commit 3cb67a37f1
4 changed files with 124 additions and 105 deletions

View File

@@ -183,6 +183,10 @@ class PowerManagerService extends IPowerManager.Stub
private Intent mScreenOnIntent;
private LightsService mLightsService;
private Context mContext;
private LightsService.Light mLcdLight;
private LightsService.Light mButtonLight;
private LightsService.Light mKeyboardLight;
private LightsService.Light mAttentionLight;
private UnsynchronizedWakeLock mBroadcastWakeLock;
private UnsynchronizedWakeLock mStayOnWhilePluggedInScreenDimLock;
private UnsynchronizedWakeLock mStayOnWhilePluggedInPartialLock;
@@ -428,6 +432,11 @@ class PowerManagerService extends IPowerManager.Stub
mBatteryStats = BatteryStatsService.getService();
mBatteryService = battery;
mLcdLight = lights.getLight(LightsService.LIGHT_ID_BACKLIGHT);
mButtonLight = lights.getLight(LightsService.LIGHT_ID_BUTTONS);
mKeyboardLight = lights.getLight(LightsService.LIGHT_ID_KEYBOARD);
mAttentionLight = lights.getLight(LightsService.LIGHT_ID_ATTENTION);
mHandlerThread = new HandlerThread("PowerManagerService") {
@Override
protected void onLooperPrepared() {
@@ -1362,13 +1371,8 @@ class PowerManagerService extends IPowerManager.Stub
enableLightSensor(on);
if (!on) {
// make sure button and key backlights are off too
int brightnessMode = (mUseSoftwareAutoBrightness
? LightsService.BRIGHTNESS_MODE_SENSOR
: LightsService.BRIGHTNESS_MODE_USER);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BUTTONS, 0,
brightnessMode);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_KEYBOARD, 0,
brightnessMode);
mButtonLight.turnOff();
mKeyboardLight.turnOff();
// clear current value so we will update based on the new conditions
// when the sensor is reenabled.
mLightSensorValue = -1;
@@ -1723,19 +1727,13 @@ class PowerManagerService extends IPowerManager.Stub
? LightsService.BRIGHTNESS_MODE_SENSOR
: LightsService.BRIGHTNESS_MODE_USER);
if ((mask & SCREEN_BRIGHT_BIT) != 0) {
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BACKLIGHT, value,
brightnessMode);
mLcdLight.setBrightness(value, brightnessMode);
}
brightnessMode = (mUseSoftwareAutoBrightness
? LightsService.BRIGHTNESS_MODE_SENSOR
: LightsService.BRIGHTNESS_MODE_USER);
if ((mask & BUTTON_BRIGHT_BIT) != 0) {
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BUTTONS, value,
brightnessMode);
mButtonLight.setBrightness(value);
}
if ((mask & KEYBOARD_BRIGHT_BIT) != 0) {
mLightsService.setLightBrightness(LightsService.LIGHT_ID_KEYBOARD, value,
brightnessMode);
mKeyboardLight.setBrightness(value);
}
}
@@ -2083,8 +2081,7 @@ class PowerManagerService extends IPowerManager.Stub
int brightnessMode = (mAutoBrightessEnabled
? LightsService.BRIGHTNESS_MODE_SENSOR
: LightsService.BRIGHTNESS_MODE_USER);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BACKLIGHT,
lcdValue, brightnessMode);
mLcdLight.setBrightness(lcdValue, brightnessMode);
}
}
if (mButtonBrightnessOverride < 0) {
@@ -2095,11 +2092,7 @@ class PowerManagerService extends IPowerManager.Stub
startAnimation = true;
}
} else {
int brightnessMode = (mUseSoftwareAutoBrightness
? LightsService.BRIGHTNESS_MODE_SENSOR
: LightsService.BRIGHTNESS_MODE_USER);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BUTTONS,
buttonValue, brightnessMode);
mButtonLight.setBrightness(buttonValue);
}
}
if (mButtonBrightnessOverride < 0 || !mKeyboardVisible) {
@@ -2110,11 +2103,7 @@ class PowerManagerService extends IPowerManager.Stub
startAnimation = true;
}
} else {
int brightnessMode = (mUseSoftwareAutoBrightness
? LightsService.BRIGHTNESS_MODE_SENSOR
: LightsService.BRIGHTNESS_MODE_USER);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_KEYBOARD,
keyboardValue, brightnessMode);
mKeyboardLight.setBrightness(keyboardValue);
}
}
if (startAnimation) {
@@ -2443,12 +2432,9 @@ class PowerManagerService extends IPowerManager.Stub
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
// Don't let applications turn the screen all the way off
brightness = Math.max(brightness, Power.BRIGHTNESS_DIM);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BACKLIGHT, brightness,
LightsService.BRIGHTNESS_MODE_USER);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_KEYBOARD,
(mKeyboardVisible ? brightness : 0), LightsService.BRIGHTNESS_MODE_USER);
mLightsService.setLightBrightness(LightsService.LIGHT_ID_BUTTONS, brightness,
LightsService.BRIGHTNESS_MODE_USER);
mLcdLight.setBrightness(brightness);
mKeyboardLight.setBrightness(mKeyboardVisible ? brightness : 0);
mButtonLight.setBrightness(brightness);
long identity = Binder.clearCallingIdentity();
try {
mBatteryStats.noteScreenBrightness(brightness);
@@ -2478,7 +2464,7 @@ class PowerManagerService extends IPowerManager.Stub
public void setAttentionLight(boolean on, int color) {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
mLightsService.setAttentionLight(on, color);
mAttentionLight.setFlashing(color, LightsService.LIGHT_FLASH_HARDWARE, (on ? 3 : 0), 0);
}
private void enableProximityLockLocked() {