Fix a couple issues with swiping up from home

- Don't update the animation to go from 0 to 1; instead, update the
  interpolator to clamp to the remaining progress (b/79773309)
- Fix NPE that can happen in a race between the atomic animation
  ending and the non-atomic animation canceling/ending

Change-Id: I313251dc5cbd7b931b043fc3e840bb4ab368a790
This commit is contained in:
Tony Wickham
2018-05-17 16:30:46 -07:00
parent 48059dc706
commit 7de574175b
2 changed files with 9 additions and 13 deletions

View File

@@ -209,11 +209,13 @@ public abstract class AbstractStateChangeTouchController
@Override
public void onAnimationSuccess(Animator animation) {
cancelAtomicComponentsController();
mAtomicComponentsStartProgress = mCurrentAnimation.getProgressFraction();
long duration = (long) (getShiftRange() * 2);
mAtomicComponentsController = AnimatorPlaybackController.wrap(
createAtomicAnimForState(mFromState, mToState, duration), duration);
mAtomicComponentsController.dispatchOnStart();
if (mCurrentAnimation != null) {
mAtomicComponentsStartProgress = mCurrentAnimation.getProgressFraction();
long duration = (long) (getShiftRange() * 2);
mAtomicComponentsController = AnimatorPlaybackController.wrap(
createAtomicAnimForState(mFromState, mToState, duration), duration);
mAtomicComponentsController.dispatchOnStart();
}
}
});
}