summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/pageindicators
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/pageindicators')
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicatorDots.java36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
index 12a67014d..4f5edc94f 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
@@ -72,18 +72,6 @@ public class PageIndicatorDots extends PageIndicator {
}
};
- /**
- * Listener for keep running the animation until the final state is reached.
- */
- private final AnimatorListenerAdapter mAnimCycleListener = new AnimatorListenerAdapter() {
-
- @Override
- public void onAnimationEnd(Animator animation) {
- mAnimator = null;
- animateToPosition(mFinalPosition);
- }
- };
-
private final Paint mCirclePaint;
private final float mDotRadius;
private final int mActiveColor;
@@ -163,7 +151,7 @@ public class PageIndicatorDots extends PageIndicator {
float positionForThisAnim = mCurrentPosition > mFinalPosition ?
mCurrentPosition - SHIFT_PER_ANIMATION : mCurrentPosition + SHIFT_PER_ANIMATION;
mAnimator = ObjectAnimator.ofFloat(this, CURRENT_POSITION, positionForThisAnim);
- mAnimator.addListener(mAnimCycleListener);
+ mAnimator.addListener(new AnimationCycleListener());
mAnimator.setDuration(ANIMATION_DURATION);
mAnimator.start();
}
@@ -171,7 +159,6 @@ public class PageIndicatorDots extends PageIndicator {
public void stopAllAnimations() {
if (mAnimator != null) {
- mAnimator.removeAllListeners();
mAnimator.cancel();
mAnimator = null;
}
@@ -326,4 +313,25 @@ public class PageIndicatorDots extends PageIndicator {
}
}
}
+
+ /**
+ * Listener for keep running the animation until the final state is reached.
+ */
+ private class AnimationCycleListener extends AnimatorListenerAdapter {
+
+ private boolean mCancelled = false;
+
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ mCancelled = true;
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ if (!mCancelled) {
+ mAnimator = null;
+ animateToPosition(mFinalPosition);
+ }
+ }
+ }
}