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

Commit 6f6b877a authored by Christine Franks's avatar Christine Franks Committed by Android (Google) Code Review
Browse files

Merge "Move night display settings queries"

parents 6f56fc13 78a4dd4c
Loading
Loading
Loading
Loading
+51 −42
Original line number Diff line number Diff line
@@ -558,14 +558,16 @@ public final class ColorDisplayService extends SystemService {
                    if (setting != null) {
                        switch (setting) {
                            case Secure.NIGHT_DISPLAY_ACTIVATED:
                                final boolean activated = isNightDisplayActivatedSetting();
                                final boolean activated = mNightDisplayTintController
                                        .isActivatedSetting();
                                if (mNightDisplayTintController.isActivatedStateNotSet()
                                        || mNightDisplayTintController.isActivated() != activated) {
                                    mNightDisplayTintController.onActivated(activated);
                                    mNightDisplayTintController.setActivated(activated);
                                }
                                break;
                            case Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE:
                                final int temperature = getNightDisplayColorTemperatureSetting();
                                final int temperature = mNightDisplayTintController
                                        .getColorTemperatureSetting();
                                if (mNightDisplayTintController.getColorTemperature()
                                        != temperature) {
                                    mNightDisplayTintController
@@ -641,14 +643,16 @@ public final class ColorDisplayService extends SystemService {
            // Prepare the night display color transformation matrix.
            mNightDisplayTintController
                    .setUp(getContext(), DisplayTransformManager.needsLinearColorMatrix());
            mNightDisplayTintController.setMatrix(getNightDisplayColorTemperatureSetting());
            mNightDisplayTintController
                    .setMatrix(mNightDisplayTintController.getColorTemperatureSetting());

            // Initialize the current auto mode.
            onNightDisplayAutoModeChanged(getNightDisplayAutoModeInternal());

            // Force the initialization of the current saved activation state.
            if (mNightDisplayTintController.isActivatedStateNotSet()) {
                mNightDisplayTintController.onActivated(isNightDisplayActivatedSetting());
                mNightDisplayTintController
                        .setActivated(mNightDisplayTintController.isActivatedSetting());
            }
        }

@@ -728,7 +732,8 @@ public final class ColorDisplayService extends SystemService {
        if (mNightDisplayTintController.isAvailable(getContext())) {
            mNightDisplayTintController
                    .setUp(getContext(), DisplayTransformManager.needsLinearColorMatrix(mode));
            mNightDisplayTintController.setMatrix(getNightDisplayColorTemperatureSetting());
            mNightDisplayTintController
                    .setMatrix(mNightDisplayTintController.getColorTemperatureSetting());
        }

        updateDisplayWhiteBalanceStatus();
@@ -1046,8 +1051,7 @@ public final class ColorDisplayService extends SystemService {
     *
     * See {@link com.android.server.display.DisplayTransformManager}
     */
    private @ColorMode
    int getCurrentColorModeFromSystemProperties() {
    private @ColorMode int getCurrentColorModeFromSystemProperties() {
        final int displayColorSetting = SystemProperties.getInt("persist.sys.sf.native_mode", 0);
        if (displayColorSetting == 0) {
            return "1.0".equals(SystemProperties.get("persist.sys.sf.color_saturation"))
@@ -1104,33 +1108,6 @@ public final class ColorDisplayService extends SystemService {
        pw.println("Color mode: " + getColorModeInternal());
    }

    private boolean isNightDisplayActivatedSetting() {
        return Secure.getIntForUser(getContext().getContentResolver(),
                Secure.NIGHT_DISPLAY_ACTIVATED, 0, mCurrentUser) == 1;
    }

    private int getNightDisplayColorTemperatureSetting() {
        return clampNightDisplayColorTemperature(Secure.getIntForUser(
                getContext().getContentResolver(), Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE, NOT_SET,
                mCurrentUser));
    }

    private int clampNightDisplayColorTemperature(int colorTemperature) {
        if (colorTemperature == NOT_SET) {
            colorTemperature = getContext().getResources().getInteger(
                    R.integer.config_nightDisplayColorTemperatureDefault);
        }
        final int minimumTemperature = ColorDisplayManager.getMinimumColorTemperature(getContext());
        final int maximumTemperature = ColorDisplayManager.getMaximumColorTemperature(getContext());
        if (colorTemperature < minimumTemperature) {
            colorTemperature = minimumTemperature;
        } else if (colorTemperature > maximumTemperature) {
            colorTemperature = maximumTemperature;
        }

        return colorTemperature;
    }

    private abstract class NightDisplayAutoMode {

        public abstract void onActivated(boolean activated);
@@ -1177,7 +1154,7 @@ public final class ColorDisplayService extends SystemService {
                // Maintain the existing activated state if within the current period.
                if (mLastActivatedTime.isBefore(now) && mLastActivatedTime.isAfter(start)
                        && (mLastActivatedTime.isAfter(end) || now.isBefore(end))) {
                    activate = isNightDisplayActivatedSetting();
                    activate = mNightDisplayTintController.isActivatedSetting();
                }
            }

@@ -1273,7 +1250,7 @@ public final class ColorDisplayService extends SystemService {
                // Maintain the existing activated state if within the current period.
                if (mLastActivatedTime.isBefore(now) && (mLastActivatedTime.isBefore(sunrise)
                        ^ mLastActivatedTime.isBefore(sunset))) {
                    activate = isNightDisplayActivatedSetting();
                    activate = mNightDisplayTintController.isActivatedSetting();
                }
            }

@@ -1472,9 +1449,11 @@ public final class ColorDisplayService extends SystemService {

            if (isActivatedStateNotSet() || activationStateChanged) {
                super.setActivated(activated);
                if (isActivatedSetting() != activated) {
                    Secure.putIntForUser(getContext().getContentResolver(),
                            Secure.NIGHT_DISPLAY_ACTIVATED,
                            activated ? 1 : 0, mCurrentUser);
                }
                onActivated(activated);
            }
        }
@@ -1492,7 +1471,7 @@ public final class ColorDisplayService extends SystemService {
            return mIsAvailable;
        }

        void onActivated(boolean activated) {
        private void onActivated(boolean activated) {
            Slog.i(TAG, activated ? "Turning on night display" : "Turning off night display");
            if (mNightDisplayAutoMode != null) {
                mNightDisplayAutoMode.onActivated(activated);
@@ -1507,7 +1486,7 @@ public final class ColorDisplayService extends SystemService {

        int getColorTemperature() {
            return mColorTemp != null ? clampNightDisplayColorTemperature(mColorTemp)
                    : getNightDisplayColorTemperatureSetting();
                    : getColorTemperatureSetting();
        }

        boolean setColorTemperature(int temperature) {
@@ -1522,6 +1501,36 @@ public final class ColorDisplayService extends SystemService {
            setMatrix(temperature);
            mHandler.sendEmptyMessage(MSG_APPLY_NIGHT_DISPLAY_IMMEDIATE);
        }

        boolean isActivatedSetting() {
            return Secure.getIntForUser(getContext().getContentResolver(),
                    Secure.NIGHT_DISPLAY_ACTIVATED, 0, mCurrentUser) == 1;
        }

        int getColorTemperatureSetting() {
            return clampNightDisplayColorTemperature(Secure.getIntForUser(
                    getContext().getContentResolver(), Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE,
                    NOT_SET,
                    mCurrentUser));
        }

        private int clampNightDisplayColorTemperature(int colorTemperature) {
            if (colorTemperature == NOT_SET) {
                colorTemperature = getContext().getResources().getInteger(
                        R.integer.config_nightDisplayColorTemperatureDefault);
            }
            final int minimumTemperature = ColorDisplayManager
                    .getMinimumColorTemperature(getContext());
            final int maximumTemperature = ColorDisplayManager
                    .getMaximumColorTemperature(getContext());
            if (colorTemperature < minimumTemperature) {
                colorTemperature = minimumTemperature;
            } else if (colorTemperature > maximumTemperature) {
                colorTemperature = maximumTemperature;
            }

            return colorTemperature;
        }
    }

    /**