summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2014-09-30 14:55:36 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-30 14:55:36 +0000
commitd11215b8bb618ef98dc12243f26fd3a863d947d6 (patch)
tree404bb5b13dd73c239d1f4c0c4ace2a3b1f7741fa /graphics
parent7768ecccf727633760b34ad3a3aacb3fb7d7798d (diff)
parentb805da9b592e67cb777b78db3a96d47c60e31ca7 (diff)
downloadframeworks_base-d11215b8bb618ef98dc12243f26fd3a863d947d6.zip
frameworks_base-d11215b8bb618ef98dc12243f26fd3a863d947d6.tar.gz
frameworks_base-d11215b8bb618ef98dc12243f26fd3a863d947d6.tar.bz2
am b805da9b: Merge "Fix drawable container tinting" into lmp-dev
* commit 'b805da9b592e67cb777b78db3a96d47c60e31ca7': Fix drawable container tinting
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/graphics/drawable/DrawableContainer.java31
1 files changed, 18 insertions, 13 deletions
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index 0b052f4..4a719fe 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -177,11 +177,10 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
@Override
public void setTintList(ColorStateList tint) {
- mDrawableContainerState.mHasTint = tint != null
- && mDrawableContainerState.mTintMode != null;
+ mDrawableContainerState.mHasTintList = true;
- if (mDrawableContainerState.mTint != tint) {
- mDrawableContainerState.mTint = tint;
+ if (mDrawableContainerState.mTintList != tint) {
+ mDrawableContainerState.mTintList = tint;
if (mCurrDrawable != null) {
mCurrDrawable.mutate().setTintList(tint);
@@ -191,8 +190,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
@Override
public void setTintMode(Mode tintMode) {
- mDrawableContainerState.mHasTint = mDrawableContainerState.mTint != null
- && tintMode != null;
+ mDrawableContainerState.mHasTintMode = true;
if (mDrawableContainerState.mTintMode != tintMode) {
mDrawableContainerState.mTintMode = tintMode;
@@ -449,10 +447,15 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
d.setAlpha(mAlpha);
}
if (mDrawableContainerState.mHasColorFilter) {
+ // Color filter always overrides tint.
d.setColorFilter(mDrawableContainerState.mColorFilter);
- } else if (mDrawableContainerState.mHasTint) {
- d.setTintList(mDrawableContainerState.mTint);
- d.setTintMode(mDrawableContainerState.mTintMode);
+ } else {
+ if (mDrawableContainerState.mHasTintList) {
+ d.setTintList(mDrawableContainerState.mTintList);
+ }
+ if (mDrawableContainerState.mHasTintMode) {
+ d.setTintMode(mDrawableContainerState.mTintMode);
+ }
}
d.setVisible(isVisible(), true);
d.setDither(mDrawableContainerState.mDither);
@@ -623,9 +626,10 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
ColorFilter mColorFilter;
boolean mHasColorFilter;
- ColorStateList mTint;
+ ColorStateList mTintList;
Mode mTintMode;
- boolean mHasTint;
+ boolean mHasTintList;
+ boolean mHasTintMode;
DrawableContainerState(DrawableContainerState orig, DrawableContainer owner,
Resources res) {
@@ -649,9 +653,10 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
mAutoMirrored = orig.mAutoMirrored;
mColorFilter = orig.mColorFilter;
mHasColorFilter = orig.mHasColorFilter;
- mTint = orig.mTint;
+ mTintList = orig.mTintList;
mTintMode = orig.mTintMode;
- mHasTint = orig.mHasTint;
+ mHasTintList = orig.mHasTintList;
+ mHasTintMode = orig.mHasTintMode;
// Cloning the following values may require creating futures.
mConstantPadding = orig.getConstantPadding();