Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7e756a0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove gap applying night display and color mode"

parents b6c92f00 218e656e
Loading
Loading
Loading
Loading
+15 −8
Original line number Original line Diff line number Diff line
@@ -189,7 +189,7 @@ public final class ColorDisplayService extends SystemService
        mController = new ColorDisplayController(getContext(), mCurrentUser);
        mController = new ColorDisplayController(getContext(), mCurrentUser);
        mController.setListener(this);
        mController.setListener(this);


        setCoefficientMatrix(getContext());
        setCoefficientMatrix(getContext(), DisplayTransformManager.isNativeModeEnabled());


        // Prepare color transformation matrix.
        // Prepare color transformation matrix.
        setMatrix(mController.getColorTemperature(), mMatrixNight);
        setMatrix(mController.getColorTemperature(), mMatrixNight);
@@ -287,17 +287,24 @@ public final class ColorDisplayService extends SystemService
    }
    }


    @Override
    @Override
    public void onDisplayColorModeChanged(int colorMode) {
    public void onDisplayColorModeChanged(int mode) {
        final DisplayTransformManager dtm = getLocalService(DisplayTransformManager.class);
        // Cancel the night display tint animator if it's running.
        dtm.setColorMode(colorMode);
        if (mColorMatrixAnimator != null) {
            mColorMatrixAnimator.cancel();
        }


        setCoefficientMatrix(getContext());
        setCoefficientMatrix(getContext(), mode == ColorDisplayController.COLOR_MODE_SATURATED);
        setMatrix(mController.getColorTemperature(), mMatrixNight);
        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
        final String[] coefficients = context.getResources().getStringArray(isNative
                ? R.array.config_nightDisplayColorTemperatureCoefficientsNative
                ? R.array.config_nightDisplayColorTemperatureCoefficientsNative
                : R.array.config_nightDisplayColorTemperatureCoefficients);
                : R.array.config_nightDisplayColorTemperatureCoefficients);
+2 −1
Original line number Original line Diff line number Diff line
@@ -222,7 +222,7 @@ public class DisplayTransformManager {
        return SystemProperties.getBoolean(PERSISTENT_PROPERTY_NATIVE_MODE, false);
        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) {
        if (colorMode == ColorDisplayController.COLOR_MODE_NATURAL) {
            applySaturation(COLOR_SATURATION_NATURAL);
            applySaturation(COLOR_SATURATION_NATURAL);
            setNativeMode(false);
            setNativeMode(false);
@@ -233,6 +233,7 @@ public class DisplayTransformManager {
            applySaturation(COLOR_SATURATION_NATURAL);
            applySaturation(COLOR_SATURATION_NATURAL);
            setNativeMode(true);
            setNativeMode(true);
        }
        }
        setColorMatrix(LEVEL_COLOR_MATRIX_NIGHT_DISPLAY, nightDisplayMatrix);


        updateConfiguration();
        updateConfiguration();