Merge "Use exact brightnesses values for comparison." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8769ff6429
@@ -705,10 +705,8 @@ public final class DisplayManagerService extends SystemService {
|
|||||||
final BrightnessPair brightnessPair =
|
final BrightnessPair brightnessPair =
|
||||||
index < 0 ? null : mDisplayBrightnesses.valueAt(index);
|
index < 0 ? null : mDisplayBrightnesses.valueAt(index);
|
||||||
if (index < 0 || (mDisplayStates.valueAt(index) == state
|
if (index < 0 || (mDisplayStates.valueAt(index) == state
|
||||||
&& BrightnessSynchronizer.floatEquals(
|
&& brightnessPair.brightness == brightnessState
|
||||||
brightnessPair.brightness, brightnessState)
|
&& brightnessPair.sdrBrightness == sdrBrightnessState)) {
|
||||||
&& BrightnessSynchronizer.floatEquals(
|
|
||||||
brightnessPair.sdrBrightness, sdrBrightnessState))) {
|
|
||||||
return; // Display no longer exists or no change.
|
return; // Display no longer exists or no change.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1352,9 +1352,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
final float currentBrightness = mPowerState.getScreenBrightness();
|
final float currentBrightness = mPowerState.getScreenBrightness();
|
||||||
final float currentSdrBrightness = mPowerState.getSdrScreenBrightness();
|
final float currentSdrBrightness = mPowerState.getSdrScreenBrightness();
|
||||||
if (isValidBrightnessValue(animateValue)
|
if (isValidBrightnessValue(animateValue)
|
||||||
&& (!BrightnessSynchronizer.floatEquals(animateValue, currentBrightness)
|
&& (animateValue != currentBrightness
|
||||||
|| !BrightnessSynchronizer.floatEquals(
|
|| sdrAnimateValue != currentSdrBrightness)) {
|
||||||
sdrAnimateValue, currentSdrBrightness))) {
|
|
||||||
if (initialRampSkip || hasBrightnessBuckets
|
if (initialRampSkip || hasBrightnessBuckets
|
||||||
|| wasOrWillBeInVr || !isDisplayContentVisible || brightnessIsTemporary) {
|
|| wasOrWillBeInVr || !isDisplayContentVisible || brightnessIsTemporary) {
|
||||||
animateScreenBrightness(animateValue, sdrAnimateValue,
|
animateScreenBrightness(animateValue, sdrAnimateValue,
|
||||||
@@ -1684,11 +1683,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
mHbmController.getCurrentBrightnessMin(), mHbmController.getCurrentBrightnessMax());
|
mHbmController.getCurrentBrightnessMin(), mHbmController.getCurrentBrightnessMax());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checks whether the brightness is within the valid brightness range, not including the off or
|
// Checks whether the brightness is within the valid brightness range, not including off.
|
||||||
// invalid states.
|
private boolean isValidBrightnessValue(float brightness) {
|
||||||
private boolean isValidBrightnessValue(float brightnessState) {
|
return brightness >= PowerManager.BRIGHTNESS_MIN
|
||||||
return brightnessState >= PowerManager.BRIGHTNESS_MIN
|
&& brightness <= PowerManager.BRIGHTNESS_MAX;
|
||||||
&& brightnessState <= PowerManager.BRIGHTNESS_MAX;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void animateScreenBrightness(float target, float sdrTarget, float rate) {
|
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) {
|
private void putScreenBrightnessSetting(float brightnessValue, boolean updateCurrent) {
|
||||||
|
if (!isValidBrightnessValue(brightnessValue)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (updateCurrent) {
|
if (updateCurrent) {
|
||||||
setCurrentScreenBrightness(brightnessValue);
|
setCurrentScreenBrightness(brightnessValue);
|
||||||
}
|
}
|
||||||
@@ -2064,8 +2065,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
|| mPendingScreenBrightnessSetting < 0.0f)) {
|
|| mPendingScreenBrightnessSetting < 0.0f)) {
|
||||||
return brightnessSplineChanged;
|
return brightnessSplineChanged;
|
||||||
}
|
}
|
||||||
if (BrightnessSynchronizer.floatEquals(
|
if (mCurrentScreenBrightnessSetting == mPendingScreenBrightnessSetting) {
|
||||||
mCurrentScreenBrightnessSetting, mPendingScreenBrightnessSetting)) {
|
|
||||||
mPendingScreenBrightnessSetting = PowerManager.BRIGHTNESS_INVALID_FLOAT;
|
mPendingScreenBrightnessSetting = PowerManager.BRIGHTNESS_INVALID_FLOAT;
|
||||||
mTemporaryScreenBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT;
|
mTemporaryScreenBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT;
|
||||||
return brightnessSplineChanged;
|
return brightnessSplineChanged;
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ import android.util.Slog;
|
|||||||
import android.view.Choreographer;
|
import android.view.Choreographer;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
|
|
||||||
import com.android.internal.display.BrightnessSynchronizer;
|
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -166,10 +164,11 @@ final class DisplayPowerState {
|
|||||||
/**
|
/**
|
||||||
* Sets the display's SDR brightness.
|
* 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) {
|
public void setSdrScreenBrightness(float brightness) {
|
||||||
if (!BrightnessSynchronizer.floatEquals(mSdrScreenBrightness, brightness)) {
|
if (mSdrScreenBrightness != brightness) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.d(TAG, "setSdrScreenBrightness: brightness=" + brightness);
|
Slog.d(TAG, "setSdrScreenBrightness: brightness=" + brightness);
|
||||||
}
|
}
|
||||||
@@ -192,10 +191,11 @@ final class DisplayPowerState {
|
|||||||
/**
|
/**
|
||||||
* Sets the display brightness.
|
* 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) {
|
public void setScreenBrightness(float brightness) {
|
||||||
if (!BrightnessSynchronizer.floatEquals(mScreenBrightness, brightness)) {
|
if (mScreenBrightness != brightness) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.d(TAG, "setScreenBrightness: brightness=" + brightness);
|
Slog.d(TAG, "setScreenBrightness: brightness=" + brightness);
|
||||||
}
|
}
|
||||||
@@ -432,10 +432,8 @@ final class DisplayPowerState {
|
|||||||
public boolean setState(int state, float brightnessState, float sdrBrightnessState) {
|
public boolean setState(int state, float brightnessState, float sdrBrightnessState) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
boolean stateChanged = state != mPendingState;
|
boolean stateChanged = state != mPendingState;
|
||||||
boolean backlightChanged =
|
boolean backlightChanged = brightnessState != mPendingBacklight
|
||||||
!BrightnessSynchronizer.floatEquals(brightnessState, mPendingBacklight)
|
|| sdrBrightnessState != mPendingSdrBacklight;
|
||||||
|| !BrightnessSynchronizer.floatEquals(
|
|
||||||
sdrBrightnessState, mPendingSdrBacklight);
|
|
||||||
if (stateChanged || backlightChanged) {
|
if (stateChanged || backlightChanged) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.d(TAG, "Requesting new screen state: state="
|
Slog.d(TAG, "Requesting new screen state: state="
|
||||||
@@ -486,10 +484,8 @@ final class DisplayPowerState {
|
|||||||
stateChanged = (state != mActualState);
|
stateChanged = (state != mActualState);
|
||||||
brightnessState = mPendingBacklight;
|
brightnessState = mPendingBacklight;
|
||||||
sdrBrightnessState = mPendingSdrBacklight;
|
sdrBrightnessState = mPendingSdrBacklight;
|
||||||
backlightChanged =
|
backlightChanged = brightnessState != mActualBacklight
|
||||||
!BrightnessSynchronizer.floatEquals(brightnessState, mActualBacklight)
|
|| sdrBrightnessState != mActualSdrBacklight;
|
||||||
|| !BrightnessSynchronizer.floatEquals(
|
|
||||||
sdrBrightnessState, mActualSdrBacklight);
|
|
||||||
if (!stateChanged) {
|
if (!stateChanged) {
|
||||||
// State changed applied, notify outer class.
|
// State changed applied, notify outer class.
|
||||||
postScreenUpdateThreadSafe();
|
postScreenUpdateThreadSafe();
|
||||||
|
|||||||
@@ -648,12 +648,11 @@ final class LocalDisplayAdapter extends DisplayAdapter {
|
|||||||
public Runnable requestDisplayStateLocked(final int state, final float brightnessState,
|
public Runnable requestDisplayStateLocked(final int state, final float brightnessState,
|
||||||
final float sdrBrightnessState) {
|
final float sdrBrightnessState) {
|
||||||
// Assume that the brightness is off if the display is being turned off.
|
// Assume that the brightness is off if the display is being turned off.
|
||||||
assert state != Display.STATE_OFF || BrightnessSynchronizer.floatEquals(
|
assert state != Display.STATE_OFF
|
||||||
brightnessState, PowerManager.BRIGHTNESS_OFF_FLOAT);
|
|| brightnessState == PowerManager.BRIGHTNESS_OFF_FLOAT;
|
||||||
final boolean stateChanged = (mState != state);
|
final boolean stateChanged = (mState != state);
|
||||||
final boolean brightnessChanged =
|
final boolean brightnessChanged = mBrightnessState != brightnessState
|
||||||
!(BrightnessSynchronizer.floatEquals(mBrightnessState, brightnessState)
|
|| mSdrBrightnessState != sdrBrightnessState;
|
||||||
&& BrightnessSynchronizer.floatEquals(mSdrBrightnessState, sdrBrightnessState));
|
|
||||||
if (stateChanged || brightnessChanged) {
|
if (stateChanged || brightnessChanged) {
|
||||||
final long physicalDisplayId = mPhysicalDisplayId;
|
final long physicalDisplayId = mPhysicalDisplayId;
|
||||||
final IBinder token = getDisplayTokenLocked();
|
final IBinder token = getDisplayTokenLocked();
|
||||||
@@ -807,8 +806,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private float brightnessToBacklight(float brightness) {
|
private float brightnessToBacklight(float brightness) {
|
||||||
if (BrightnessSynchronizer.floatEquals(
|
if (brightness == PowerManager.BRIGHTNESS_OFF_FLOAT) {
|
||||||
brightness, PowerManager.BRIGHTNESS_OFF_FLOAT)) {
|
|
||||||
return PowerManager.BRIGHTNESS_OFF_FLOAT;
|
return PowerManager.BRIGHTNESS_OFF_FLOAT;
|
||||||
} else {
|
} else {
|
||||||
return getDisplayDeviceConfig().getBacklightFromBrightness(brightness);
|
return getDisplayDeviceConfig().getBacklightFromBrightness(brightness);
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ import android.animation.ValueAnimator;
|
|||||||
import android.util.FloatProperty;
|
import android.util.FloatProperty;
|
||||||
import android.view.Choreographer;
|
import android.view.Choreographer;
|
||||||
|
|
||||||
import com.android.internal.display.BrightnessSynchronizer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A custom animator that progressively updates a property value at
|
* A custom animator that progressively updates a property value at
|
||||||
* a given variable rate until it reaches a particular target value.
|
* a given variable rate until it reaches a particular target value.
|
||||||
@@ -157,10 +155,10 @@ class RampAnimator<T> {
|
|||||||
}
|
}
|
||||||
final float oldCurrentValue = mCurrentValue;
|
final float oldCurrentValue = mCurrentValue;
|
||||||
mCurrentValue = mAnimatedValue;
|
mCurrentValue = mAnimatedValue;
|
||||||
if (!BrightnessSynchronizer.floatEquals(oldCurrentValue, mCurrentValue)) {
|
if (oldCurrentValue != mCurrentValue) {
|
||||||
mProperty.setValue(mObject, mCurrentValue);
|
mProperty.setValue(mObject, mCurrentValue);
|
||||||
}
|
}
|
||||||
if (!BrightnessSynchronizer.floatEquals(mTargetValue, mCurrentValue)) {
|
if (mTargetValue != mCurrentValue) {
|
||||||
postAnimationCallback();
|
postAnimationCallback();
|
||||||
} else {
|
} else {
|
||||||
mAnimating = false;
|
mAnimating = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user