Separate tint and tintMode properties

BUG: 16054922
Change-Id: I820fb857b671faf9eb27612e470e820c5c4cd6b5
This commit is contained in:
Alan Viverette
2014-07-28 16:02:55 -07:00
parent 33559c96ad
commit a426445dfd
21 changed files with 340 additions and 235 deletions

View File

@@ -176,15 +176,29 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
}
@Override
public void setTint(ColorStateList tint, Mode tintMode) {
mDrawableContainerState.mHasTint = (tint != null && tintMode != null);
public void setTintList(ColorStateList tint) {
mDrawableContainerState.mHasTint = tint != null
&& mDrawableContainerState.mTintMode != null;
if (mDrawableContainerState.mTint != tint || mDrawableContainerState.mTintMode != tintMode) {
if (mDrawableContainerState.mTint != tint) {
mDrawableContainerState.mTint = tint;
if (mCurrDrawable != null) {
mCurrDrawable.mutate().setTintList(tint);
}
}
}
@Override
public void setTintMode(Mode tintMode) {
mDrawableContainerState.mHasTint = mDrawableContainerState.mTint != null
&& tintMode != null;
if (mDrawableContainerState.mTintMode != tintMode) {
mDrawableContainerState.mTintMode = tintMode;
if (mCurrDrawable != null) {
mCurrDrawable.mutate().setTint(tint, tintMode);
mCurrDrawable.mutate().setTintMode(tintMode);
}
}
}
@@ -437,7 +451,8 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
if (mDrawableContainerState.mHasColorFilter) {
d.setColorFilter(mDrawableContainerState.mColorFilter);
} else if (mDrawableContainerState.mHasTint) {
d.setTint(mDrawableContainerState.mTint, mDrawableContainerState.mTintMode);
d.setTintList(mDrawableContainerState.mTint);
d.setTintMode(mDrawableContainerState.mTintMode);
}
d.setVisible(isVisible(), true);
d.setDither(mDrawableContainerState.mDither);