diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java b/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java index 70d4d6a..d4491d8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java @@ -20,6 +20,8 @@ import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; +import android.util.Slog; +import android.view.View; import android.widget.ImageView; import android.widget.RemoteViews.RemoteView; @@ -43,7 +45,7 @@ public class AnimatedImageView extends ImageView { } if (drawable instanceof AnimationDrawable) { mAnim = (AnimationDrawable)drawable; - if (mAttached) { + if (isShown()) { mAnim.start(); } } else { @@ -67,9 +69,6 @@ public class AnimatedImageView extends ImageView { @Override public void onAttachedToWindow() { super.onAttachedToWindow(); - if (mAnim != null) { - mAnim.start(); - } mAttached = true; } @@ -81,5 +80,17 @@ public class AnimatedImageView extends ImageView { } mAttached = false; } + + @Override + protected void onVisibilityChanged(View changedView, int vis) { + super.onVisibilityChanged(changedView, vis); + if (mAnim != null) { + if (isShown()) { + mAnim.start(); + } else { + mAnim.stop(); + } + } + } } |