Remove gap applying night display and color mode

Bug: 68268324
Test: make -j100
Change-Id: I9be6fe350728944f0e157c1b8928ca1f5b65f4d8
This commit is contained in:
Christine Franks
2017-11-27 10:20:14 -08:00
parent 560d5f851e
commit 218e656e0b
2 changed files with 17 additions and 9 deletions

View File

@@ -231,7 +231,7 @@ public final class ColorDisplayService extends SystemService
mController = new ColorDisplayController(getContext(), mCurrentUser);
mController.setListener(this);
setCoefficientMatrix(getContext());
setCoefficientMatrix(getContext(), DisplayTransformManager.isNativeModeEnabled());
// Prepare color transformation matrix.
setMatrix(mController.getColorTemperature(), mMatrixNight);
@@ -329,17 +329,24 @@ public final class ColorDisplayService extends SystemService
}
@Override
public void onDisplayColorModeChanged(int colorMode) {
final DisplayTransformManager dtm = getLocalService(DisplayTransformManager.class);
dtm.setColorMode(colorMode);
public void onDisplayColorModeChanged(int mode) {
// Cancel the night display tint animator if it's running.
if (mColorMatrixAnimator != null) {
mColorMatrixAnimator.cancel();
}
setCoefficientMatrix(getContext());
setCoefficientMatrix(getContext(), mode == ColorDisplayController.COLOR_MODE_SATURATED);
setMatrix(mController.getColorTemperature(), mMatrixNight);
applyTint(true);
final DisplayTransformManager dtm = getLocalService(DisplayTransformManager.class);
dtm.setColorMode(mode, mIsActivated ? mMatrixNight : MATRIX_IDENTITY);
}
private void setCoefficientMatrix(Context context) {
final boolean isNative = DisplayTransformManager.isNativeModeEnabled();
/**
* Set coefficients based on native mode. Use DisplayTransformManager#isNativeModeEnabled while
* setting is stable; when setting is changing, pass native mode selection directly.
*/
private void setCoefficientMatrix(Context context, boolean isNative) {
final String[] coefficients = context.getResources().getStringArray(isNative
? R.array.config_nightDisplayColorTemperatureCoefficientsNative
: R.array.config_nightDisplayColorTemperatureCoefficients);

View File

@@ -222,7 +222,7 @@ public class DisplayTransformManager {
return SystemProperties.getBoolean(PERSISTENT_PROPERTY_NATIVE_MODE, false);
}
public boolean setColorMode(int colorMode) {
public boolean setColorMode(int colorMode, float[] nightDisplayMatrix) {
if (colorMode == ColorDisplayController.COLOR_MODE_NATURAL) {
applySaturation(COLOR_SATURATION_NATURAL);
setNativeMode(false);
@@ -233,6 +233,7 @@ public class DisplayTransformManager {
applySaturation(COLOR_SATURATION_NATURAL);
setNativeMode(true);
}
setColorMatrix(LEVEL_COLOR_MATRIX_NIGHT_DISPLAY, nightDisplayMatrix);
updateConfiguration();