From f3b26292efc51be58497b8a850d010f9a22ebd27 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Thu, 14 Mar 2019 16:06:22 -0700 Subject: [PATCH] Let scanning progress loop Bug: 111414690 Test: visual Change-Id: Ic4e6e1198acaf8666bb944ae6244243f8f02f7c5 --- .../systemui/statusbar/phone/LockIcon.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java index b7d1fc697f2a0..b6545a5bd7321 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -21,6 +21,7 @@ import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.PorterDuff; +import android.graphics.drawable.Animatable2; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; @@ -134,6 +135,16 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange if (animation != null && isAnim) { animation.forceAnimationOnUI(); + animation.clearAnimationCallbacks(); + animation.registerAnimationCallback(new Animatable2.AnimationCallback() { + @Override + public void onAnimationEnd(Drawable drawable) { + if (getDrawable() == animation && state == getState() + && doesAnimationLoop(iconAnimRes)) { + animation.start(); + } + } + }); animation.start(); } @@ -215,6 +226,10 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange return mContext.getDrawable(iconRes); } + private boolean doesAnimationLoop(int resourceId) { + return resourceId == com.android.internal.R.anim.lock_scanning; + } + private static int getAnimationResForTransition(int oldState, int newState, boolean wasPulsing, boolean pulsing, boolean wasDozing, boolean dozing) {