summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-02-05 17:10:47 -0800
committerAlan Viverette <alanv@google.com>2015-02-05 17:10:47 -0800
commitb989c5561ea10e623d73e7bb89b37ac38ccdd908 (patch)
treed7b124b5ea7a685b2c676af4181de3c6daad242a /core/java/android
parentfe7712e758c12e3fbe26c652dc4ca33267210bd0 (diff)
parentcbe32de4544bbd8a4a360949dc2535eeeb0e21ff (diff)
downloadframeworks_base-b989c5561ea10e623d73e7bb89b37ac38ccdd908.zip
frameworks_base-b989c5561ea10e623d73e7bb89b37ac38ccdd908.tar.gz
frameworks_base-b989c5561ea10e623d73e7bb89b37ac38ccdd908.tar.bz2
resolve merge conflicts of da9653a to master.
Change-Id: I7458452389fb7b048fe5c6daa375fd4dbb9d9766
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/View.java4
-rw-r--r--core/java/android/widget/ScrollBarDrawable.java25
2 files changed, 27 insertions, 2 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 5a8b265..bac087e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -12872,7 +12872,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
Interpolator.Result.FREEZE_END) {
cache.state = ScrollabilityCache.OFF;
} else {
- cache.scrollBar.setAlpha(Math.round(values[0]));
+ cache.scrollBar.mutate().setAlpha(Math.round(values[0]));
}
// This will make the scroll bars inval themselves after
@@ -12882,7 +12882,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
} else {
// We're just on -- but we may have been fading before so
// reset alpha
- cache.scrollBar.setAlpha(255);
+ cache.scrollBar.mutate().setAlpha(255);
}
diff --git a/core/java/android/widget/ScrollBarDrawable.java b/core/java/android/widget/ScrollBarDrawable.java
index b12c581..6fd90c3 100644
--- a/core/java/android/widget/ScrollBarDrawable.java
+++ b/core/java/android/widget/ScrollBarDrawable.java
@@ -44,6 +44,7 @@ public class ScrollBarDrawable extends Drawable implements Drawable.Callback {
private boolean mRangeChanged;
private boolean mAlwaysDrawHorizontalTrack;
private boolean mAlwaysDrawVerticalTrack;
+ private boolean mMutated;
private int mAlpha = 255;
private boolean mHasSetAlpha;
@@ -266,6 +267,10 @@ public class ScrollBarDrawable extends Drawable implements Drawable.Callback {
private void propagateCurrentState(Drawable d) {
if (d != null) {
+ if (mMutated) {
+ d.mutate();
+ }
+
d.setState(getState());
d.setCallback(this);
@@ -290,6 +295,26 @@ public class ScrollBarDrawable extends Drawable implements Drawable.Callback {
}
@Override
+ public ScrollBarDrawable mutate() {
+ if (!mMutated && super.mutate() == this) {
+ if (mVerticalTrack != null) {
+ mVerticalTrack.mutate();
+ }
+ if (mVerticalThumb != null) {
+ mVerticalThumb.mutate();
+ }
+ if (mHorizontalTrack != null) {
+ mHorizontalTrack.mutate();
+ }
+ if (mHorizontalThumb != null) {
+ mHorizontalThumb.mutate();
+ }
+ mMutated = true;
+ }
+ return this;
+ }
+
+ @Override
public void setAlpha(int alpha) {
mAlpha = alpha;
mHasSetAlpha = true;