61 lines
3.2 KiB
Diff
61 lines
3.2 KiB
Diff
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
|
|
index 7c0f4197363..a46b96ae5fa 100644
|
|
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
|
|
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
|
|
@@ -63,6 +63,10 @@ import com.android.server.display.whitebalance.DisplayWhiteBalanceFactory;
|
|
import com.android.server.display.whitebalance.DisplayWhiteBalanceSettings;
|
|
import com.android.server.policy.WindowManagerPolicy;
|
|
|
|
+// Button backlights
|
|
+import com.android.server.lights.LightsManager;
|
|
+import com.android.server.lights.LogicalLight;
|
|
+
|
|
import java.io.PrintWriter;
|
|
import java.util.List;
|
|
|
|
@@ -258,6 +262,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|
// Must only be accessed on the handler thread.
|
|
private DisplayPowerState mPowerState;
|
|
|
|
+ // Buttons backlight
|
|
+ private LightsManager mLightsManager;
|
|
+ private LogicalLight mButtonsLight;
|
|
+
|
|
// True if the device should wait for negative proximity sensor before
|
|
// waking up the screen. This is set to false as soon as a negative
|
|
// proximity sensor measurement is observed or when the device is forced to
|
|
@@ -686,6 +694,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|
mPowerState = new DisplayPowerState(mBlanker,
|
|
mColorFadeEnabled ? new ColorFade(Display.DEFAULT_DISPLAY) : null);
|
|
|
|
+ mLightsManager = LocalServices.getService(LightsManager.class);
|
|
+ mButtonsLight = mLightsManager.getLight(LightsManager.LIGHT_ID_KEYBOARD);
|
|
+
|
|
if (mColorFadeEnabled) {
|
|
mColorFadeOnAnimator = ObjectAnimator.ofFloat(
|
|
mPowerState, DisplayPowerState.COLOR_FADE_LEVEL, 0.0f, 1.0f);
|
|
@@ -1154,6 +1165,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|
&& mReportedScreenStateToPolicy == REPORTED_TO_POLICY_SCREEN_TURNING_ON) {
|
|
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_ON);
|
|
mWindowManagerPolicy.screenTurnedOn();
|
|
+ mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_MAX);
|
|
}
|
|
|
|
// Grab a wake lock if we have unfinished business.
|
|
@@ -1310,6 +1322,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_OFF);
|
|
unblockScreenOn();
|
|
mWindowManagerPolicy.screenTurnedOff();
|
|
+ mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_MIN);
|
|
} else if (!isOff
|
|
&& mReportedScreenStateToPolicy == REPORTED_TO_POLICY_SCREEN_TURNING_OFF) {
|
|
|
|
@@ -1317,6 +1330,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|
// Complete the full state transition on -> turningOff -> off.
|
|
unblockScreenOff();
|
|
mWindowManagerPolicy.screenTurnedOff();
|
|
+ mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_MIN);
|
|
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_OFF);
|
|
}
|
|
if (!isOff && mReportedScreenStateToPolicy == REPORTED_TO_POLICY_SCREEN_OFF) {
|