summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fiona Campbell <flc@google.com> 2022-11-07 09:54:45 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-11-07 09:54:45 +0000
commit10cd7d590421ddaee6733f14198666b78c47befb (patch)
treec649998ee305f1b5fe62365d683bc281decceb50
parent6cc66e4581998390ad63aee0fc566253a62fa0e7 (diff)
parentfccce26e131ef466739b9a8f39f0e66fe5e4e684 (diff)
Merge "Only load default lightsensor for Brightness Tracker" into tm-qpr-dev
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java2
-rw-r--r--services/core/java/com/android/server/display/DisplayPowerController.java8
2 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index b8ff6ed93666..7806ece9e65f 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -2598,7 +2598,7 @@ public final class DisplayManagerService extends SystemService {
// initPowerManagement has not yet been called.
return;
}
- if (mBrightnessTracker == null) {
+ if (mBrightnessTracker == null && display.getDisplayIdLocked() == Display.DEFAULT_DISPLAY) {
mBrightnessTracker = new BrightnessTracker(mContext, null);
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 95dc23fc3120..69c890d90d03 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -913,7 +913,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// Initialize all of the brightness tracking state
final float brightness = convertToNits(mPowerState.getScreenBrightness());
- if (brightness >= PowerManager.BRIGHTNESS_MIN) {
+ if (mBrightnessTracker != null && brightness >= PowerManager.BRIGHTNESS_MIN) {
mBrightnessTracker.start(brightness);
}
mBrightnessSettingListener = brightnessValue -> {
@@ -1045,7 +1045,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
loadAmbientLightSensor();
- if (mBrightnessTracker != null) {
+ // BrightnessTracker should only use one light sensor, we want to use the light sensor
+ // from the default display and not e.g. temporary displays when switching layouts.
+ if (mBrightnessTracker != null && mDisplayId == Display.DEFAULT_DISPLAY) {
mBrightnessTracker.setLightSensor(mLightSensor);
}
@@ -2453,7 +2455,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
boolean hadUserDataPoint) {
final float brightnessInNits = convertToNits(brightness);
if (mPowerRequest.useAutoBrightness && brightnessInNits >= 0.0f
- && mAutomaticBrightnessController != null) {
+ && mAutomaticBrightnessController != null && mBrightnessTracker != null) {
// We only want to track changes on devices that can actually map the display backlight
// values into a physical brightness unit since the value provided by the API is in
// nits and not using the arbitrary backlight units.