From 9ffeecc584e5ffc6028a0b7636ceef9d73dc8b2d Mon Sep 17 00:00:00 2001 From: Anthony Restaino Date: Fri, 30 Jan 2015 22:50:31 -0500 Subject: [PATCH] Improve rendering --- .../lightning/AnimatedProgressBar.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/acr/browser/lightning/AnimatedProgressBar.java b/src/acr/browser/lightning/AnimatedProgressBar.java index a0b37b2..f87a70e 100644 --- a/src/acr/browser/lightning/AnimatedProgressBar.java +++ b/src/acr/browser/lightning/AnimatedProgressBar.java @@ -9,6 +9,7 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.animation.Animation; +import android.view.animation.Animation.AnimationListener; import android.view.animation.DecelerateInterpolator; import android.view.animation.Transformation; import android.widget.LinearLayout; @@ -97,11 +98,7 @@ public class AnimatedProgressBar extends LinearLayout { mProgressView.getLayoutParams().width = width; mProgressView.requestLayout(); } - if ((1.0f - interpolatedTime) < 0.0005) { - if (mProgress >= 100) { - fadeOut(); - } - } + mProgressView.invalidate(); } @Override @@ -109,7 +106,25 @@ public class AnimatedProgressBar extends LinearLayout { return true; } }; + mAnimation.setAnimationListener(new AnimationListener(){ + + @Override + public void onAnimationStart(Animation animation) { + } + @Override + public void onAnimationEnd(Animation animation) { + if (mProgress >= 100) { + fadeOut(); + } + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + + }); + mAnimation.setDuration(300); mAnimation.setInterpolator(new DecelerateInterpolator()); } @@ -155,9 +170,7 @@ public class AnimatedProgressBar extends LinearLayout { initialWidth = 0; } else if (progress == mProgress) { // we don't need to go any farther if the progress is unchanged - return; - } mProgress = progress; // save the progress @@ -178,6 +191,7 @@ public class AnimatedProgressBar extends LinearLayout { mInitialWidth = initialWidth; mMaxWidth = maxWidth; mDeltaWidth = deltaWidth; + mAnimation.reset(); mProgressView.startAnimation(mAnimation); }