Merge "Do not invalidate drawable if tint doesn't change" into nyc-dev

This commit is contained in:
Jorim Jaggi
2016-02-10 06:08:34 +00:00
committed by Android (Google) Code Review

View File

@@ -641,17 +641,23 @@ public class BitmapDrawable extends Drawable {
@Override @Override
public void setTintList(ColorStateList tint) { public void setTintList(ColorStateList tint) {
mBitmapState.mTint = tint; final BitmapState state = mBitmapState;
if (state.mTint != tint) {
state.mTint = tint;
mTintFilter = updateTintFilter(mTintFilter, tint, mBitmapState.mTintMode); mTintFilter = updateTintFilter(mTintFilter, tint, mBitmapState.mTintMode);
invalidateSelf(); invalidateSelf();
} }
}
@Override @Override
public void setTintMode(PorterDuff.Mode tintMode) { public void setTintMode(PorterDuff.Mode tintMode) {
mBitmapState.mTintMode = tintMode; final BitmapState state = mBitmapState;
if (state.mTintMode != tintMode) {
state.mTintMode = tintMode;
mTintFilter = updateTintFilter(mTintFilter, mBitmapState.mTint, tintMode); mTintFilter = updateTintFilter(mTintFilter, mBitmapState.mTint, tintMode);
invalidateSelf(); invalidateSelf();
} }
}
/** /**
* @hide only needed by a hack within ProgressBar * @hide only needed by a hack within ProgressBar