Merge "Use exact brightnesses values for comparison." into sc-dev

This commit is contained in:
TreeHugger Robot
2021-07-09 20:33:27 +00:00
committed by Android (Google) Code Review
5 changed files with 29 additions and 39 deletions

View File

@@ -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.
}

View File

@@ -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;

View File

@@ -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();

View File

@@ -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);

View File

@@ -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;