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

Commit 6b3bcfec authored by Santos Cordon's avatar Santos Cordon
Browse files

Some EvenDimmer changes

Adding better variable names to some code as well as some
new dumpsys logging for even dimmer.

Bug: 294760970
Flag: com.android.server.display.feature.flags.even_dimmer
Test: atest com.android.server.display
Change-Id: I615c5193f14d133215001928f6b557b8a1c18d21
parent b7d2f2b5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2014,7 +2014,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            @Nullable DisplayBrightnessState state) {
        synchronized (mCachedBrightnessInfo) {
            float stateMax = state != null ? state.getMaxBrightness() : PowerManager.BRIGHTNESS_MAX;
            float stateMin = state != null ? state.getMinBrightness() : PowerManager.BRIGHTNESS_MAX;
            float stateMin = state != null ? state.getMinBrightness() : PowerManager.BRIGHTNESS_MIN;
            @BrightnessInfo.BrightnessMaxReason int maxReason =
                    state != null ? state.getBrightnessMaxReason()
                            : BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE;
+8 −6
Original line number Diff line number Diff line
@@ -1095,10 +1095,9 @@ final class LocalDisplayAdapter extends DisplayAdapter {

                        final float minHardwareNits = backlightToNits(brightnessToBacklight(
                                mDisplayDeviceConfig.getEvenDimmerTransitionPoint()));
                        final float requestedNits =
                                backlightToNits(brightnessToBacklight(brightnessState));
                        mNitsToEvenDimmerStrength =
                                mCdsi.fetchEvenDimmerSpline(minHardwareNits);
                        final float backlight = brightnessToBacklight(brightnessState);
                        final float requestedNits = backlightToNits(backlight);
                        mNitsToEvenDimmerStrength = mCdsi.fetchEvenDimmerSpline(minHardwareNits);

                        if (mNitsToEvenDimmerStrength == null) {
                            return;
@@ -1108,9 +1107,12 @@ final class LocalDisplayAdapter extends DisplayAdapter {
                        int strength = Math.round(mNitsToEvenDimmerStrength
                                .interpolate(requestedNits));
                        boolean enabled = strength > 0.0f;
                        if (mEvenDimmerEnabled != enabled) {
                        if (mEvenDimmerEnabled != enabled || (DEBUG && enabled)) {
                            Slog.i(TAG, "Setting Extra Dim; strength: " + strength
                                    + ", " + (enabled ? "enabled" : "disabled"));
                                    + ", " + (enabled ? "enabled" : "disabled")
                                    + ", requestedNits: " + requestedNits
                                    + ", brightnessState: " + brightnessState
                                    + ", backlight: " + backlight);
                        }
                        if (mEvenDimmerStrength != strength || mEvenDimmerEnabled != enabled) {
                            mEvenDimmerEnabled = enabled;
+10 −3
Original line number Diff line number Diff line
@@ -1193,6 +1193,7 @@ public final class ColorDisplayService extends SystemService {
        }

        pw.println("Color mode: " + getColorModeInternal());
        pw.println("mEvenDimmerSpline: " + mEvenDimmerSpline);
    }

    private abstract class NightDisplayAutoMode {
@@ -1730,12 +1731,18 @@ public final class ColorDisplayService extends SystemService {
        }

        /**
         * Get spline to map between requested nits, and required even dimmer strength.
         * Gets a spline that can be used to get the appropriate EvenDimmer strength [0-1] to use
         * for a given nits that we want. This spline is used to make the screen darker than the
         * lowest nits supported by the hardware. As such, the provided baselineNits should be the
         * minimum nits supported by the hardware, and we can use this spline to figure out the
         * strength we need to achieve a nits lower than the hardware minimum.
         *
         * @param baselineNits The baseline nits produced when 0% strength is used.
         * @return nits to strength spline
         */
        public Spline fetchEvenDimmerSpline(float nits) {
        public Spline fetchEvenDimmerSpline(float baselineNits) {
            if (mEvenDimmerSpline == null) {
                mEvenDimmerSpline = createNitsToStrengthSpline(nits);
                mEvenDimmerSpline = createNitsToStrengthSpline(baselineNits);
            }
            return mEvenDimmerSpline;
        }