Commit 6a8f4d74 authored by Shakti Sahu's avatar Shakti Sahu Committed by Commit Bot

Download infobar : Animation improvements for API < 25

Fixed several issues with animation :
1 - Color of the completed download check mark was grey.
Changed it to light blue and smoothened the transition.
2 - For API < 25, when onAnimationEnd() is called,
isRunning() still returns true, hence restartAnimation
bails out early. This is a known android bug, workaround
 is to post the restart method.
3 - The fill animation was not being reset to correct
deep blue color at the beginning of every loop. Fixed it.

Bug: 853860
Change-Id: Iff2414f2e94ed85711be19a13776db31e74292ee
Reviewed-on: https://chromium-review.googlesource.com/1105500Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarShakti Sahu <shaktisahu@chromium.org>
Commit-Queue: Shakti Sahu <shaktisahu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568545}
parent 09702691
......@@ -17,7 +17,7 @@
<path
android:name="circle"
android:fillColor="@android:color/transparent"
android:fillColor="@color/google_blue_50"
android:pathData="M 0,12 C 0,6 6,0 12,0 C 18,0 24,6 24,12 C 24,18 18,24 12,24 C 6,24 0,18 0,12"/>
<path
......@@ -32,11 +32,18 @@
<aapt:attr name="android:animation">
<set android:ordering="sequentially">
<objectAnimator
android:duration="800"
android:duration="100"
android:interpolator="@android:interpolator/linear"
android:propertyName="fillColor"
android:valueFrom="@color/google_blue_50"
android:valueTo="@android:color/transparent"/>
android:propertyName="fillAlpha"
android:valueFrom="0"
android:valueTo="1"/>
<objectAnimator
android:duration="500"
android:startOffset="300"
android:interpolator="@android:interpolator/linear"
android:propertyName="fillAlpha"
android:valueFrom="1"
android:valueTo="0"/>
</set>
</aapt:attr>
</target>
......
......@@ -63,6 +63,12 @@
<target android:name="arrow_blue">
<aapt:attr name="android:animation">
<set android:ordering="sequentially">
<objectAnimator
android:duration="0"
android:interpolator="@android:interpolator/linear"
android:propertyName="fillColor"
android:valueFrom="@color/google_blue_500"
android:valueTo="@color/google_blue_500"/>
<objectAnimator
android:duration="@integer/download_infobar_fill_out_delay"
android:startOffset="@integer/download_infobar_fill_in_delay"
......
......@@ -12,6 +12,7 @@ import android.support.v4.view.ViewCompat;
import android.view.View;
import android.widget.TextView;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.download.DownloadInfoBarController;
......@@ -144,9 +145,10 @@ public class DownloadProgressInfoBar extends InfoBar {
}
private void restartIconAnimation() {
if (mAnimatedDrawable == null) return;
mAnimatedDrawable.start();
ThreadUtils.postOnUiThread(() -> {
if (mAnimatedDrawable == null) return;
mAnimatedDrawable.start();
});
}
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment