diff options
| author | Daniel Solomon <solomondaniel@google.com> | 2021-09-17 15:29:49 -0700 |
|---|---|---|
| committer | Daniel Solomon <solomondaniel@google.com> | 2021-09-30 17:18:03 -0700 |
| commit | a49b90befed61e22f382ce320df13cb6cc3031ed (patch) | |
| tree | ed0faa4ed476942104ecd34ffaec9a4f1acf0e46 /core/java/android | |
| parent | de460d153e060a42d37a8417f6908c714237bb0a (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.java | 11 |
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(); |
