Merge changes from topic "presubmit-am-feedd56083be48668fea14c29cf72287" into sc-v2-dev-plus-aosp

* changes:
  [automerge] [RESTRICT AUTOMERGE]DisplayManager: Make sure RampAnimator sets property in linear space. 2p: 47461bb5ae
  [RESTRICT AUTOMERGE]DisplayManager: Make sure RampAnimator sets property in linear space.
This commit is contained in:
Chris Kuiper
2022-02-06 00:27:14 +00:00
committed by Android (Google) Code Review

View File

@@ -70,7 +70,7 @@ class RampAnimator<T> {
mRate = 0;
mTargetValue = target;
mCurrentValue = target;
mProperty.setValue(mObject, target);
setPropertyValue(target);
if (mAnimating) {
mAnimating = false;
cancelAnimationCallback();
@@ -125,6 +125,15 @@ class RampAnimator<T> {
mListener = listener;
}
/**
* Sets the brightness property by converting the given value from HLG space
* into linear space.
*/
private void setPropertyValue(float val) {
final float linearVal = BrightnessUtils.convertGammaToLinear(val);
mProperty.setValue(mObject, linearVal);
}
private void postAnimationCallback() {
mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mAnimationCallback, null);
}
@@ -160,9 +169,7 @@ class RampAnimator<T> {
final float oldCurrentValue = mCurrentValue;
mCurrentValue = mAnimatedValue;
if (oldCurrentValue != mCurrentValue) {
// Convert value from HLG into linear space for the property.
final float linearCurrentVal = BrightnessUtils.convertGammaToLinear(mCurrentValue);
mProperty.setValue(mObject, linearCurrentVal);
setPropertyValue(mCurrentValue);
}
if (mTargetValue != mCurrentValue) {
postAnimationCallback();