This commit is contained in:
zb
2023-10-05 10:50:11 -04:00
commit 17fe976ed4
18 changed files with 586 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
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_BUTTONS);
+
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) {

View File

@@ -0,0 +1,60 @@
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 1224902aa7be..68855ebf06b9 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -70,6 +70,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;
/**
@@ -276,6 +280,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
@@ -817,6 +825,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
mPowerState = new DisplayPowerState(mBlanker,
mColorFadeEnabled ? new ColorFade(mDisplayId) : null, mDisplayId, displayState);
+ mLightsManager = LocalServices.getService(LightsManager.class);
+ mButtonsLight = mLightsManager.getLight(LightsManager.LIGHT_ID_BUTTONS);
+
if (mColorFadeEnabled) {
mColorFadeOnAnimator = ObjectAnimator.ofFloat(
mPowerState, DisplayPowerState.COLOR_FADE_LEVEL, 0.0f, 1.0f);
@@ -1452,6 +1463,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
&& mReportedScreenStateToPolicy == REPORTED_TO_POLICY_SCREEN_TURNING_ON) {
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_ON);
mWindowManagerPolicy.screenTurnedOn(mDisplayId);
+ mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_MAX);
}
// Grab a wake lock if we have unfinished business.
@@ -1652,6 +1664,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_OFF);
unblockScreenOn();
mWindowManagerPolicy.screenTurnedOff(mDisplayId);
+ mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT);
} else if (!isOff
&& mReportedScreenStateToPolicy == REPORTED_TO_POLICY_SCREEN_TURNING_OFF) {
@@ -1659,6 +1672,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// Complete the full state transition on -> turningOff -> off.
unblockScreenOff();
mWindowManagerPolicy.screenTurnedOff(mDisplayId);
+ mButtonsLight.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT);
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_OFF);
}
if (!isOff

View File

@@ -0,0 +1,13 @@
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java
index 88a9abaf8d..d4a65f05bb 100644
--- a/src/com/android/launcher3/config/FeatureFlags.java
+++ b/src/com/android/launcher3/config/FeatureFlags.java
@@ -52,7 +52,7 @@ public final class FeatureFlags {
* Enable moving the QSB on the 0th screen of the workspace. This is not a configuration feature
* and should be modified at a project level.
*/
- public static final boolean QSB_ON_FIRST_SCREEN = true;
+ public static final boolean QSB_ON_FIRST_SCREEN = false;
/**
* Feature flag to handle define config changes dynamically instead of killing the process.