summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorDaniel Solomon <solomondaniel@google.com>2021-09-17 15:29:49 -0700
committerDaniel Solomon <solomondaniel@google.com>2021-09-30 17:18:03 -0700
commita49b90befed61e22f382ce320df13cb6cc3031ed (patch)
treeed0faa4ed476942104ecd34ffaec9a4f1acf0e46 /core/java/android
parentde460d153e060a42d37a8417f6908c714237bb0a (diff)
Change DisplayModeDirector's brightness source to DisplayListener
Currently, DisplayModeDirector listens to brightness changes from Settings. However, brightness value in Settings is overridden for various reasons inside DisplayPowerController before being propagated to HALs. As a result, the brightness value that DisplayModeDirector is acting on isn't always the brightness value that gets applied to the display. This change, - Changes DisplayPowerController so that the final brightness value (after all modifications) is saved. - Changes DisplayModeDirector to use DisplayManager.DisplayListener to observe brightness changes and then retrieve and act on the final brightness value saved in DisplayPowerController. Bug: 199955532 Test: atest DisplayModeDirectorTest Change-Id: Ia6dd7d194b6913d2942bea9c29a2011b8058beef
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/hardware/display/BrightnessInfo.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/java/android/hardware/display/BrightnessInfo.java b/core/java/android/hardware/display/BrightnessInfo.java
index c5d37c2d0b90..6a2b900eea59 100644
--- a/core/java/android/hardware/display/BrightnessInfo.java
+++ b/core/java/android/hardware/display/BrightnessInfo.java
@@ -60,6 +60,9 @@ public final class BrightnessInfo implements Parcelable {
/** Brightness */
public final float brightness;
+ /** Brightness after {@link DisplayPowerController} adjustments */
+ public final float adjustedBrightness;
+
/** Current minimum supported brightness. */
public final float brightnessMinimum;
@@ -74,7 +77,13 @@ public final class BrightnessInfo implements Parcelable {
public BrightnessInfo(float brightness, float brightnessMinimum, float brightnessMaximum,
@HighBrightnessMode int highBrightnessMode) {
+ this(brightness, brightness, brightnessMinimum, brightnessMaximum, highBrightnessMode);
+ }
+
+ public BrightnessInfo(float brightness, float adjustedBrightness, float brightnessMinimum,
+ float brightnessMaximum, @HighBrightnessMode int highBrightnessMode) {
this.brightness = brightness;
+ this.adjustedBrightness = adjustedBrightness;
this.brightnessMinimum = brightnessMinimum;
this.brightnessMaximum = brightnessMaximum;
this.highBrightnessMode = highBrightnessMode;
@@ -103,6 +112,7 @@ public final class BrightnessInfo implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeFloat(brightness);
+ dest.writeFloat(adjustedBrightness);
dest.writeFloat(brightnessMinimum);
dest.writeFloat(brightnessMaximum);
dest.writeInt(highBrightnessMode);
@@ -123,6 +133,7 @@ public final class BrightnessInfo implements Parcelable {
private BrightnessInfo(Parcel source) {
brightness = source.readFloat();
+ adjustedBrightness = source.readFloat();
brightnessMinimum = source.readFloat();
brightnessMaximum = source.readFloat();
highBrightnessMode = source.readInt();