Merge "Only load default lightsensor for Brightness Tracker"

This commit is contained in:
Fiona Campbell
2022-11-07 09:54:20 +00:00
committed by Android (Google) Code Review
3 changed files with 12 additions and 7 deletions

View File

@@ -2620,7 +2620,8 @@ 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);
}

View File

@@ -927,7 +927,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 -> {
@@ -1059,7 +1059,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);
}
@@ -2485,7 +2487,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.

View File

@@ -903,7 +903,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
// 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 -> {
@@ -1035,7 +1035,9 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
}
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);
}
@@ -2439,7 +2441,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
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.