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

Commit fed3221c authored by Michael Wright's avatar Michael Wright
Browse files

Revert "Notify display brightness changed due to brightness transforms"

This reverts commit b7c40451.

Reason for revert: b/214849040

Change-Id: I0a3f805a7e70784d613825db1181f654c57de15d
parent 1d7496bc
Loading
Loading
Loading
Loading
+36 −86
Original line number Original line Diff line number Diff line
@@ -50,8 +50,6 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.provider.Settings;
import android.util.Log;
import android.util.Log;
import android.util.MathUtils;
import android.util.MathUtils;
import android.util.MutableFloat;
import android.util.MutableInt;
import android.util.Slog;
import android.util.Slog;
import android.util.TimeUtils;
import android.util.TimeUtils;
import android.view.Display;
import android.view.Display;
@@ -1382,7 +1380,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call


        // Animate the screen brightness when the screen is on or dozing.
        // Animate the screen brightness when the screen is on or dozing.
        // Skip the animation when the screen is off or suspended or transition to/from VR.
        // Skip the animation when the screen is off or suspended or transition to/from VR.
        boolean brightnessAdjusted = false;
        if (!mPendingScreenOff) {
        if (!mPendingScreenOff) {
            if (mSkipScreenOnBrightnessRamp) {
            if (mSkipScreenOnBrightnessRamp) {
                if (state == Display.STATE_ON) {
                if (state == Display.STATE_ON) {
@@ -1475,19 +1472,15 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                    // slider event so notify as if the system changed the brightness.
                    // slider event so notify as if the system changed the brightness.
                    userInitiatedChange = false;
                    userInitiatedChange = false;
                }
                }
                notifyBrightnessTrackerChanged(brightnessState, userInitiatedChange,
                notifyBrightnessChanged(brightnessState, userInitiatedChange,
                        hadUserBrightnessPoint);
                        hadUserBrightnessPoint);
            }
            }


            // We save the brightness info *after* the brightness setting has been changed and
            // We save the brightness info *after* the brightness setting has been changed and
            // adjustments made so that the brightness info reflects the latest value.
            // adjustments made so that the brightness info reflects the latest value.
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting(), animateValue);
            saveBrightnessInfo(getScreenBrightnessSetting(), animateValue);
        } else {
        } else {
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting());
            saveBrightnessInfo(getScreenBrightnessSetting());
        }

        if (brightnessAdjusted) {
            postBrightnessChangeRunnable();
        }
        }


        // Log any changes to what is currently driving the brightness setting.
        // Log any changes to what is currently driving the brightness setting.
@@ -1603,48 +1596,29 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    public BrightnessInfo getBrightnessInfo() {
    public BrightnessInfo getBrightnessInfo() {
        synchronized (mCachedBrightnessInfo) {
        synchronized (mCachedBrightnessInfo) {
            return new BrightnessInfo(
            return new BrightnessInfo(
                    mCachedBrightnessInfo.brightness.value,
                    mCachedBrightnessInfo.brightness,
                    mCachedBrightnessInfo.adjustedBrightness.value,
                    mCachedBrightnessInfo.adjustedBrightness,
                    mCachedBrightnessInfo.brightnessMin.value,
                    mCachedBrightnessInfo.brightnessMin,
                    mCachedBrightnessInfo.brightnessMax.value,
                    mCachedBrightnessInfo.brightnessMax,
                    mCachedBrightnessInfo.hbmMode.value,
                    mCachedBrightnessInfo.hbmMode,
                    mCachedBrightnessInfo.hbmTransitionPoint.value);
                    mCachedBrightnessInfo.highBrightnessTransitionPoint);
        }
        }
    }
    }


    private boolean saveBrightnessInfo(float brightness) {
    private void saveBrightnessInfo(float brightness) {
        return saveBrightnessInfo(brightness, brightness);
        saveBrightnessInfo(brightness, brightness);
    }
    }


    private boolean saveBrightnessInfo(float brightness, float adjustedBrightness) {
    private void saveBrightnessInfo(float brightness, float adjustedBrightness) {
        synchronized (mCachedBrightnessInfo) {
        synchronized (mCachedBrightnessInfo) {
            boolean changed = false;
            mCachedBrightnessInfo.brightness = brightness;

            mCachedBrightnessInfo.adjustedBrightness = adjustedBrightness;
            changed |=
            mCachedBrightnessInfo.brightnessMin = mHbmController.getCurrentBrightnessMin();
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightness,
            mCachedBrightnessInfo.brightnessMax = mHbmController.getCurrentBrightnessMax();
                        brightness);
            mCachedBrightnessInfo.hbmMode = mHbmController.getHighBrightnessMode();
            changed |=
            mCachedBrightnessInfo.highBrightnessTransitionPoint =
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.adjustedBrightness,
                mHbmController.getTransitionPoint();
                        adjustedBrightness);
        }
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightnessMin,
                        mHbmController.getCurrentBrightnessMin());
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightnessMax,
                        mHbmController.getCurrentBrightnessMax());
            changed |=
                mCachedBrightnessInfo.checkAndSetInt(mCachedBrightnessInfo.hbmMode,
                        mHbmController.getHighBrightnessMode());
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.hbmTransitionPoint,
                        mHbmController.getTransitionPoint());

            return changed;
        }
    }

    void postBrightnessChangeRunnable() {
        mHandler.post(mOnBrightnessChangeRunnable);
    }
    }


    private HighBrightnessModeController createHbmControllerLocked() {
    private HighBrightnessModeController createHbmControllerLocked() {
@@ -1661,7 +1635,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                displayUniqueId, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData,
                displayUniqueId, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData,
                () -> {
                () -> {
                    sendUpdatePowerStateLocked();
                    sendUpdatePowerStateLocked();
                    postBrightnessChangeRunnable();
                    mHandler.post(mOnBrightnessChangeRunnable);
                    // TODO(b/192258832): Switch the HBMChangeCallback to a listener pattern.
                    // TODO(b/192258832): Switch the HBMChangeCallback to a listener pattern.
                    if (mAutomaticBrightnessController != null) {
                    if (mAutomaticBrightnessController != null) {
                        mAutomaticBrightnessController.update();
                        mAutomaticBrightnessController.update();
@@ -2163,7 +2137,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private void setCurrentScreenBrightness(float brightnessValue) {
    private void setCurrentScreenBrightness(float brightnessValue) {
        if (brightnessValue != mCurrentScreenBrightnessSetting) {
        if (brightnessValue != mCurrentScreenBrightnessSetting) {
            mCurrentScreenBrightnessSetting = brightnessValue;
            mCurrentScreenBrightnessSetting = brightnessValue;
            postBrightnessChangeRunnable();
            mHandler.post(mOnBrightnessChangeRunnable);
        }
        }
    }
    }


@@ -2215,7 +2189,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        return true;
        return true;
    }
    }


    private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated,
    private void notifyBrightnessChanged(float brightness, boolean userInitiated,
            boolean hadUserDataPoint) {
            boolean hadUserDataPoint) {
        final float brightnessInNits = convertToNits(brightness);
        final float brightnessInNits = convertToNits(brightness);
        if (mPowerRequest.useAutoBrightness && brightnessInNits >= 0.0f
        if (mPowerRequest.useAutoBrightness && brightnessInNits >= 0.0f
@@ -2325,17 +2299,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        pw.println("  mColorFadeFadesConfig=" + mColorFadeFadesConfig);
        pw.println("  mColorFadeFadesConfig=" + mColorFadeFadesConfig);
        pw.println("  mColorFadeEnabled=" + mColorFadeEnabled);
        pw.println("  mColorFadeEnabled=" + mColorFadeEnabled);
        synchronized (mCachedBrightnessInfo) {
        synchronized (mCachedBrightnessInfo) {
            pw.println("  mCachedBrightnessInfo.brightness=" +
            pw.println("  mCachedBrightnessInfo.brightness=" + mCachedBrightnessInfo.brightness);
                    mCachedBrightnessInfo.brightness.value);
            pw.println("  mCachedBrightnessInfo.adjustedBrightness=" +
            pw.println("  mCachedBrightnessInfo.adjustedBrightness=" +
                    mCachedBrightnessInfo.adjustedBrightness.value);
                    mCachedBrightnessInfo.adjustedBrightness);
            pw.println("  mCachedBrightnessInfo.brightnessMin=" +
            pw.println("  mCachedBrightnessInfo.brightnessMin=" +
                    mCachedBrightnessInfo.brightnessMin.value);
                    mCachedBrightnessInfo.brightnessMin);
            pw.println("  mCachedBrightnessInfo.brightnessMax=" +
            pw.println("  mCachedBrightnessInfo.brightnessMax=" +
                    mCachedBrightnessInfo.brightnessMax.value);
                    mCachedBrightnessInfo.brightnessMax);
            pw.println("  mCachedBrightnessInfo.hbmMode=" + mCachedBrightnessInfo.hbmMode.value);
            pw.println("  mCachedBrightnessInfo.hbmMode=" + mCachedBrightnessInfo.hbmMode);
            pw.println("  mCachedBrightnessInfo.hbmTransitionPoint=" +
            pw.println("  mCachedBrightnessInfo.highBrightnessTransitionPoint=" +
                    mCachedBrightnessInfo.hbmTransitionPoint.value);
                    mCachedBrightnessInfo.highBrightnessTransitionPoint);
        }
        }
        pw.println("  mDisplayBlanksAfterDozeConfig=" + mDisplayBlanksAfterDozeConfig);
        pw.println("  mDisplayBlanksAfterDozeConfig=" + mDisplayBlanksAfterDozeConfig);
        pw.println("  mBrightnessBucketsInDozeConfig=" + mBrightnessBucketsInDozeConfig);
        pw.println("  mBrightnessBucketsInDozeConfig=" + mBrightnessBucketsInDozeConfig);
@@ -2493,10 +2466,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private void reportStats(float brightness) {
    private void reportStats(float brightness) {
        float hbmTransitionPoint = PowerManager.BRIGHTNESS_MAX;
        float hbmTransitionPoint = PowerManager.BRIGHTNESS_MAX;
        synchronized(mCachedBrightnessInfo) {
        synchronized(mCachedBrightnessInfo) {
            if (mCachedBrightnessInfo.hbmTransitionPoint == null) {
            hbmTransitionPoint = mCachedBrightnessInfo.highBrightnessTransitionPoint;
                return;
            }
            hbmTransitionPoint = mCachedBrightnessInfo.hbmTransitionPoint.value;
        }
        }


        final boolean aboveTransition = brightness > hbmTransitionPoint;
        final boolean aboveTransition = brightness > hbmTransitionPoint;
@@ -2793,31 +2763,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    }
    }


    static class CachedBrightnessInfo {
    static class CachedBrightnessInfo {
        public MutableFloat brightness = new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public float brightness;
        public MutableFloat adjustedBrightness =
        public float adjustedBrightness;
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public float brightnessMin;
        public MutableFloat brightnessMin =
        public float brightnessMax;
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public int hbmMode;
        public MutableFloat brightnessMax =
        public float highBrightnessTransitionPoint;
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableInt hbmMode = new MutableInt(BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF);
        public MutableFloat hbmTransitionPoint =
            new MutableFloat(HighBrightnessModeController.HBM_TRANSITION_POINT_INVALID);

        public boolean checkAndSetFloat(MutableFloat mf, float f) {
            if (mf.value != f) {
                mf.value = f;
                return true;
            }
            return false;
        }

        public boolean checkAndSetInt(MutableInt mi, int i) {
            if (mi.value != i) {
                mi.value = i;
                return true;
            }
            return false;
        }
    }
    }
}
}