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

Commit 7c1ba7ab authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Use exact brightnesses values for comparison." into sc-dev am: 8769ff64

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15221614

Change-Id: I02d182909bb0cef6c577f109c13e001e7e21dde6
parents 67ac799e 8769ff64
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -705,10 +705,8 @@ public final class DisplayManagerService extends SystemService {
            final BrightnessPair brightnessPair =
                    index < 0 ? null : mDisplayBrightnesses.valueAt(index);
            if (index < 0 || (mDisplayStates.valueAt(index) == state
                    && BrightnessSynchronizer.floatEquals(
                            brightnessPair.brightness, brightnessState)
                    && BrightnessSynchronizer.floatEquals(
                            brightnessPair.sdrBrightness, sdrBrightnessState))) {
                    && brightnessPair.brightness == brightnessState
                    && brightnessPair.sdrBrightness == sdrBrightnessState)) {
                return; // Display no longer exists or no change.
            }

+10 −10
Original line number Diff line number Diff line
@@ -1352,9 +1352,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            final float currentBrightness = mPowerState.getScreenBrightness();
            final float currentSdrBrightness = mPowerState.getSdrScreenBrightness();
            if (isValidBrightnessValue(animateValue)
                    && (!BrightnessSynchronizer.floatEquals(animateValue, currentBrightness)
                    || !BrightnessSynchronizer.floatEquals(
                            sdrAnimateValue, currentSdrBrightness))) {
                    && (animateValue != currentBrightness
                    || sdrAnimateValue != currentSdrBrightness)) {
                if (initialRampSkip || hasBrightnessBuckets
                        || wasOrWillBeInVr || !isDisplayContentVisible || brightnessIsTemporary) {
                    animateScreenBrightness(animateValue, sdrAnimateValue,
@@ -1684,11 +1683,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                mHbmController.getCurrentBrightnessMin(), mHbmController.getCurrentBrightnessMax());
    }

    // Checks whether the brightness is within the valid brightness range, not including the off or
    // invalid states.
    private boolean isValidBrightnessValue(float brightnessState) {
        return brightnessState >= PowerManager.BRIGHTNESS_MIN
                && brightnessState <= PowerManager.BRIGHTNESS_MAX;
    // Checks whether the brightness is within the valid brightness range, not including off.
    private boolean isValidBrightnessValue(float brightness) {
        return brightness >= PowerManager.BRIGHTNESS_MIN
                && brightness <= PowerManager.BRIGHTNESS_MAX;
    }

    private void animateScreenBrightness(float target, float sdrTarget, float rate) {
@@ -2018,6 +2016,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    }

    private void putScreenBrightnessSetting(float brightnessValue, boolean updateCurrent) {
        if (!isValidBrightnessValue(brightnessValue)) {
            return;
        }
        if (updateCurrent) {
            setCurrentScreenBrightness(brightnessValue);
        }
@@ -2064,8 +2065,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                || mPendingScreenBrightnessSetting < 0.0f)) {
            return brightnessSplineChanged;
        }
        if (BrightnessSynchronizer.floatEquals(
                mCurrentScreenBrightnessSetting, mPendingScreenBrightnessSetting)) {
        if (mCurrentScreenBrightnessSetting == mPendingScreenBrightnessSetting) {
            mPendingScreenBrightnessSetting = PowerManager.BRIGHTNESS_INVALID_FLOAT;
            mTemporaryScreenBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT;
            return brightnessSplineChanged;
+10 −14
Original line number Diff line number Diff line
@@ -26,8 +26,6 @@ import android.util.Slog;
import android.view.Choreographer;
import android.view.Display;

import com.android.internal.display.BrightnessSynchronizer;

import java.io.PrintWriter;

/**
@@ -166,10 +164,11 @@ final class DisplayPowerState {
    /**
     * Sets the display's SDR brightness.
     *
     * @param brightness The brightness, ranges from 0.0f (minimum / off) to 1.0f (brightest).
     * @param brightness The brightness, ranges from 0.0f (minimum) to 1.0f (brightest), or is -1f
     *                   (off).
     */
    public void setSdrScreenBrightness(float brightness) {
        if (!BrightnessSynchronizer.floatEquals(mSdrScreenBrightness, brightness)) {
        if (mSdrScreenBrightness != brightness) {
            if (DEBUG) {
                Slog.d(TAG, "setSdrScreenBrightness: brightness=" + brightness);
            }
@@ -192,10 +191,11 @@ final class DisplayPowerState {
    /**
     * Sets the display brightness.
     *
     * @param brightness The brightness, ranges from 0.0f (minimum / off) to 1.0f (brightest).
     * @param brightness The brightness, ranges from 0.0f (minimum) to 1.0f (brightest), or is -1f
     *                   (off).
     */
    public void setScreenBrightness(float brightness) {
        if (!BrightnessSynchronizer.floatEquals(mScreenBrightness, brightness)) {
        if (mScreenBrightness != brightness) {
            if (DEBUG) {
                Slog.d(TAG, "setScreenBrightness: brightness=" + brightness);
            }
@@ -432,10 +432,8 @@ final class DisplayPowerState {
        public boolean setState(int state, float brightnessState, float sdrBrightnessState) {
            synchronized (mLock) {
                boolean stateChanged = state != mPendingState;
                boolean backlightChanged =
                        !BrightnessSynchronizer.floatEquals(brightnessState, mPendingBacklight)
                        || !BrightnessSynchronizer.floatEquals(
                                sdrBrightnessState, mPendingSdrBacklight);
                boolean backlightChanged = brightnessState != mPendingBacklight
                        || sdrBrightnessState != mPendingSdrBacklight;
                if (stateChanged || backlightChanged) {
                    if (DEBUG) {
                        Slog.d(TAG, "Requesting new screen state: state="
@@ -486,10 +484,8 @@ final class DisplayPowerState {
                    stateChanged = (state != mActualState);
                    brightnessState = mPendingBacklight;
                    sdrBrightnessState = mPendingSdrBacklight;
                    backlightChanged =
                            !BrightnessSynchronizer.floatEquals(brightnessState, mActualBacklight)
                            || !BrightnessSynchronizer.floatEquals(
                                    sdrBrightnessState, mActualSdrBacklight);
                    backlightChanged = brightnessState != mActualBacklight
                            || sdrBrightnessState != mActualSdrBacklight;
                    if (!stateChanged) {
                        // State changed applied, notify outer class.
                        postScreenUpdateThreadSafe();
+5 −7
Original line number Diff line number Diff line
@@ -648,12 +648,11 @@ final class LocalDisplayAdapter extends DisplayAdapter {
        public Runnable requestDisplayStateLocked(final int state, final float brightnessState,
                final float sdrBrightnessState) {
            // Assume that the brightness is off if the display is being turned off.
            assert state != Display.STATE_OFF || BrightnessSynchronizer.floatEquals(
                    brightnessState, PowerManager.BRIGHTNESS_OFF_FLOAT);
            assert state != Display.STATE_OFF
                    || brightnessState == PowerManager.BRIGHTNESS_OFF_FLOAT;
            final boolean stateChanged = (mState != state);
            final boolean brightnessChanged =
                    !(BrightnessSynchronizer.floatEquals(mBrightnessState, brightnessState)
                    && BrightnessSynchronizer.floatEquals(mSdrBrightnessState, sdrBrightnessState));
            final boolean brightnessChanged = mBrightnessState != brightnessState
                    || mSdrBrightnessState != sdrBrightnessState;
            if (stateChanged || brightnessChanged) {
                final long physicalDisplayId = mPhysicalDisplayId;
                final IBinder token = getDisplayTokenLocked();
@@ -807,8 +806,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
                    }

                    private float brightnessToBacklight(float brightness) {
                        if (BrightnessSynchronizer.floatEquals(
                                brightness, PowerManager.BRIGHTNESS_OFF_FLOAT)) {
                        if (brightness == PowerManager.BRIGHTNESS_OFF_FLOAT) {
                            return PowerManager.BRIGHTNESS_OFF_FLOAT;
                        } else {
                            return getDisplayDeviceConfig().getBacklightFromBrightness(brightness);
+2 −4
Original line number Diff line number Diff line
@@ -20,8 +20,6 @@ import android.animation.ValueAnimator;
import android.util.FloatProperty;
import android.view.Choreographer;

import com.android.internal.display.BrightnessSynchronizer;

/**
 * A custom animator that progressively updates a property value at
 * a given variable rate until it reaches a particular target value.
@@ -157,10 +155,10 @@ class RampAnimator<T> {
            }
            final float oldCurrentValue = mCurrentValue;
            mCurrentValue = mAnimatedValue;
            if (!BrightnessSynchronizer.floatEquals(oldCurrentValue, mCurrentValue)) {
            if (oldCurrentValue != mCurrentValue) {
                mProperty.setValue(mObject, mCurrentValue);
            }
            if (!BrightnessSynchronizer.floatEquals(mTargetValue, mCurrentValue)) {
            if (mTargetValue != mCurrentValue) {
                postAnimationCallback();
            } else {
                mAnimating = false;