Merge "Work around a bug in an An app"

This commit is contained in:
Doris Liu
2017-01-26 20:56:47 +00:00
committed by Android (Google) Code Review

View File

@@ -174,6 +174,10 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim
*/
private long mPauseTime = -1;
// This is to work around a bug in b/34736819. This needs to be removed once play team
// fixes their side.
private AnimatorListenerAdapter mDummyListener = new AnimatorListenerAdapter() {};
public AnimatorSet() {
super();
mNodeMap.put(mDelayAnim, mRootNode);
@@ -1018,6 +1022,8 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim
}
private void startAnimation() {
addDummyListener();
// Register animation callback
addAnimationCallback(mStartDelay);
@@ -1062,6 +1068,20 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim
}
}
// This is to work around the issue in b/34736819, as the old behavior in AnimatorSet had
// masked a real bug in play movies. TODO: remove this and below once the root cause is fixed.
private void addDummyListener() {
for (int i = 1; i < mNodes.size(); i++) {
mNodes.get(i).mAnimation.addListener(mDummyListener);
}
}
private void removeDummyListener() {
for (int i = 1; i < mNodes.size(); i++) {
mNodes.get(i).mAnimation.removeListener(mDummyListener);
}
}
private int findLatestEventIdForTime(long currentPlayTime) {
int size = mEvents.size();
int latestId = mLastEventId;
@@ -1107,6 +1127,7 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim
tmpListeners.get(i).onAnimationEnd(this, mReversing);
}
}
removeDummyListener();
mSelfPulse = true;
mReversing = false;
}