Merge "Remove gap applying night display and color mode"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c7e756a07a
@@ -189,7 +189,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);
|
||||
@@ -287,17 +287,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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user