From dff8b1b6464556c3359131dbfd226086e8af9c18 Mon Sep 17 00:00:00 2001 From: Daniel Solomon Date: Mon, 8 Apr 2019 14:30:51 -0700 Subject: [PATCH] Fix Display White Balance color temperature on enable Currently the ambient-to-display color temperature spline is applied to all color temperature values, including the placeholder value -1.0 that is used when DWB is first enabled. When this happens, display color temperature is first set to its lowest value, and is then set to a meaningful value when the sensor updates its first reading. This behavior is incorrect. To fix this, check for a valid color temperature value before applying the spline. Bug 130137407 Test: manual Change-Id: I67a06504e499411fd34e05569e9cd0cbc9f81df1 --- .../display/whitebalance/DisplayWhiteBalanceController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java b/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java index e7181e23f15d5..c32ae97da14f0 100644 --- a/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java +++ b/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java @@ -271,7 +271,7 @@ public class DisplayWhiteBalanceController implements final long time = System.currentTimeMillis(); float ambientColorTemperature = mColorTemperatureFilter.getEstimate(time); - if (mAmbientToDisplayColorTemperatureSpline != null) { + if (mAmbientToDisplayColorTemperatureSpline != null && ambientColorTemperature != -1.0f) { ambientColorTemperature = mAmbientToDisplayColorTemperatureSpline.interpolate(ambientColorTemperature); }