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 @@ ...@@ -17,7 +17,7 @@
<path <path
android:name="circle" 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"/> 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 <path
...@@ -32,11 +32,18 @@ ...@@ -32,11 +32,18 @@
<aapt:attr name="android:animation"> <aapt:attr name="android:animation">
<set android:ordering="sequentially"> <set android:ordering="sequentially">
<objectAnimator <objectAnimator
android:duration="800" android:duration="100"
android:interpolator="@android:interpolator/linear" android:interpolator="@android:interpolator/linear"
android:propertyName="fillColor" android:propertyName="fillAlpha"
android:valueFrom="@color/google_blue_50" android:valueFrom="0"
android:valueTo="@android:color/transparent"/> 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> </set>
</aapt:attr> </aapt:attr>
</target> </target>
......
...@@ -63,6 +63,12 @@ ...@@ -63,6 +63,12 @@
<target android:name="arrow_blue"> <target android:name="arrow_blue">
<aapt:attr name="android:animation"> <aapt:attr name="android:animation">
<set android:ordering="sequentially"> <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 <objectAnimator
android:duration="@integer/download_infobar_fill_out_delay" android:duration="@integer/download_infobar_fill_out_delay"
android:startOffset="@integer/download_infobar_fill_in_delay" android:startOffset="@integer/download_infobar_fill_in_delay"
......
...@@ -12,6 +12,7 @@ import android.support.v4.view.ViewCompat; ...@@ -12,6 +12,7 @@ import android.support.v4.view.ViewCompat;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.download.DownloadInfoBarController; import org.chromium.chrome.browser.download.DownloadInfoBarController;
...@@ -144,9 +145,10 @@ public class DownloadProgressInfoBar extends InfoBar { ...@@ -144,9 +145,10 @@ public class DownloadProgressInfoBar extends InfoBar {
} }
private void restartIconAnimation() { private void restartIconAnimation() {
if (mAnimatedDrawable == null) return; ThreadUtils.postOnUiThread(() -> {
if (mAnimatedDrawable == null) return;
mAnimatedDrawable.start(); 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