diff options
Diffstat (limited to 'libs/hwui/Animator.cpp')
-rw-r--r-- | libs/hwui/Animator.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libs/hwui/Animator.cpp b/libs/hwui/Animator.cpp index 74cf1fda1b75..20a8a8c71a0f 100644 --- a/libs/hwui/Animator.cpp +++ b/libs/hwui/Animator.cpp @@ -160,10 +160,6 @@ void BaseRenderNodeAnimator::pushStaging(AnimationContext& context) { } } - if (!mHasStartValue) { - doSetStartValue(getValue(mTarget)); - } - if (!mStagingRequests.empty()) { // No interpolator was set, use the default if (mPlayState == PlayState::NotStarted && !mInterpolator) { @@ -270,9 +266,11 @@ bool BaseRenderNodeAnimator::updatePlayTime(nsecs_t playTime) { // to call setValue even if the animation isn't yet running or is still // being delayed as we need to override the staging value if (playTime < 0) { - setValue(mTarget, mFromValue); return false; } + if (!this->mHasStartValue) { + doSetStartValue(getValue(mTarget)); + } float fraction = 1.0f; if ((mPlayState == PlayState::Running || mPlayState == PlayState::Reversing) && mDuration > 0) { |