diff options
author | Romain Guy <romainguy@google.com> | 2010-02-25 14:33:32 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-02-25 14:33:32 -0800 |
commit | ac68d81ce1339e4853a798e4a36e7ffd84750000 (patch) | |
tree | ad7ca8bd753493b828e32a23c28f632aa1546603 /core/java | |
parent | aaec779513737a70007dea955f60e1b8bcbc2f1a (diff) | |
parent | a05e8a5869ad2117485938cd52d4b891672a1873 (diff) | |
download | frameworks_base-ac68d81ce1339e4853a798e4a36e7ffd84750000.zip frameworks_base-ac68d81ce1339e4853a798e4a36e7ffd84750000.tar.gz frameworks_base-ac68d81ce1339e4853a798e4a36e7ffd84750000.tar.bz2 |
Merge "Prevent ProgressBar from updating itself when hidden. Bug #2470737"
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/widget/ProgressBar.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/core/java/android/widget/ProgressBar.java b/core/java/android/widget/ProgressBar.java index 6dc9f78..202e658 100644 --- a/core/java/android/widget/ProgressBar.java +++ b/core/java/android/widget/ProgressBar.java @@ -696,8 +696,7 @@ public class ProgressBar extends View { * <p>Start the indeterminate progress animation.</p> */ void startAnimation() { - int visibility = getVisibility(); - if (visibility != VISIBLE) { + if (getVisibility() != VISIBLE) { return; } @@ -771,7 +770,7 @@ public class ProgressBar extends View { // let's be nice with the UI thread if (v == GONE || v == INVISIBLE) { stopAnimation(); - } else if (v == VISIBLE) { + } else { startAnimation(); } } @@ -779,6 +778,20 @@ public class ProgressBar extends View { } @Override + protected void onVisibilityChanged(View changedView, int visibility) { + super.onVisibilityChanged(changedView, visibility); + + if (mIndeterminate) { + // let's be nice with the UI thread + if (visibility == GONE || visibility == INVISIBLE) { + stopAnimation(); + } else { + startAnimation(); + } + } + } + + @Override public void invalidateDrawable(Drawable dr) { if (!mInDrawing) { if (verifyDrawable(dr)) { |