summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java19
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();
+ }
+ }
+ }
}