summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-02-25 14:33:32 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-02-25 14:33:32 -0800
commitac68d81ce1339e4853a798e4a36e7ffd84750000 (patch)
treead7ca8bd753493b828e32a23c28f632aa1546603 /core
parentaaec779513737a70007dea955f60e1b8bcbc2f1a (diff)
parenta05e8a5869ad2117485938cd52d4b891672a1873 (diff)
downloadframeworks_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')
-rw-r--r--core/java/android/widget/ProgressBar.java19
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)) {