diff options
| author | Steve Kondik <steve@cyngn.com> | 2016-03-10 19:23:13 -0800 |
|---|---|---|
| committer | Steve Kondik <steve@cyngn.com> | 2016-03-10 19:23:13 -0800 |
| commit | 98e06d73262bc654d546ef2ded2cd6c4db5b92bf (patch) | |
| tree | d923c571c21849bf53185b26e3570fdb25fabff9 /v4/donut/android | |
| parent | 6f0a2cb4415e2e170528c038a8f1cc2f68f60c3c (diff) | |
| parent | 4097efdd93078034122f17442d5b4df675d1028a (diff) | |
| download | android_frameworks_support-98e06d73262bc654d546ef2ded2cd6c4db5b92bf.tar.gz android_frameworks_support-98e06d73262bc654d546ef2ded2cd6c4db5b92bf.tar.bz2 android_frameworks_support-98e06d73262bc654d546ef2ded2cd6c4db5b92bf.zip | |
Merge tag 'android-6.0.1_r22' of https://android.googlesource.com/platform/frameworks/support into cm-13.0staging/cm-13.0+r22
Android 6.0.1 release 22
Change-Id: I032842dcd2a5a216a56a47a7cb109f0cee8ac251
Diffstat (limited to 'v4/donut/android')
4 files changed, 44 insertions, 22 deletions
diff --git a/v4/donut/android/support/v4/animation/ValueAnimatorCompat.java b/v4/donut/android/support/v4/animation/ValueAnimatorCompat.java index 6d98c97719..07cc602708 100644 --- a/v4/donut/android/support/v4/animation/ValueAnimatorCompat.java +++ b/v4/donut/android/support/v4/animation/ValueAnimatorCompat.java @@ -19,7 +19,7 @@ package android.support.v4.animation; import android.view.View; /** - * Compatibility implementation for {@link android.animation.Animator}. + * Compatibility implementation for {@code android.animation.ValueAnimator}. * * @hide */ diff --git a/v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java b/v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java index 4809618527..fe0163dd61 100644 --- a/v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java +++ b/v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java @@ -27,19 +27,19 @@ class DrawableCompatBase { public static void setTint(Drawable drawable, int tint) { if (drawable instanceof DrawableWrapper) { - ((DrawableWrapper) drawable).setTint(tint); + ((DrawableWrapper) drawable).setCompatTint(tint); } } public static void setTintList(Drawable drawable, ColorStateList tint) { if (drawable instanceof DrawableWrapper) { - ((DrawableWrapper) drawable).setTintList(tint); + ((DrawableWrapper) drawable).setCompatTintList(tint); } } public static void setTintMode(Drawable drawable, PorterDuff.Mode tintMode) { if (drawable instanceof DrawableWrapper) { - ((DrawableWrapper) drawable).setTintMode(tintMode); + ((DrawableWrapper) drawable).setCompatTintMode(tintMode); } } diff --git a/v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java b/v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java index 1073f344c6..edbe5ad9d0 100644 --- a/v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java +++ b/v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java @@ -28,11 +28,11 @@ import android.graphics.drawable.Drawable; */ public interface DrawableWrapper { - void setTint(int tint); + void setCompatTint(int tint); - void setTintList(ColorStateList tint); + void setCompatTintList(ColorStateList tint); - void setTintMode(PorterDuff.Mode tintMode); + void setCompatTintMode(PorterDuff.Mode tintMode); Drawable getWrappedDrawable(); diff --git a/v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java b/v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java index 9293520455..300e2e8ce1 100644 --- a/v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java +++ b/v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java @@ -89,7 +89,8 @@ class DrawableWrapperDonut extends Drawable implements Drawable.Callback, Drawab @Override public boolean isStateful() { - return (mTintList != null && mTintList.isStateful()) || mDrawable.isStateful(); + final ColorStateList tintList = isCompatTintEnabled() ? mTintList : null; + return (tintList != null && tintList.isStateful()) || mDrawable.isStateful(); } @Override @@ -188,30 +189,38 @@ class DrawableWrapperDonut extends Drawable implements Drawable.Callback, Drawab } @Override - public void setTint(int tint) { - setTintList(ColorStateList.valueOf(tint)); + public void setCompatTint(int tint) { + setCompatTintList(ColorStateList.valueOf(tint)); } @Override - public void setTintList(ColorStateList tint) { - mTintList = tint; - updateTint(getState()); + public void setCompatTintList(ColorStateList tint) { + if (mTintList != tint) { + mTintList = tint; + updateTint(getState()); + } } @Override - public void setTintMode(PorterDuff.Mode tintMode) { - mTintMode = tintMode; - updateTint(getState()); + public void setCompatTintMode(PorterDuff.Mode tintMode) { + if (mTintMode != tintMode) { + mTintMode = tintMode; + updateTint(getState()); + } } private boolean updateTint(int[] state) { + if (!isCompatTintEnabled()) { + // If compat tinting is not enabled, fail fast + return false; + } + if (mTintList != null && mTintMode != null) { final int color = mTintList.getColorForState(state, mTintList.getDefaultColor()); - final PorterDuff.Mode mode = mTintMode; - if (!mColorFilterSet || color != mCurrentColor || mode != mCurrentMode) { - setColorFilter(color, mode); + if (!mColorFilterSet || color != mCurrentColor || mTintMode != mCurrentMode) { + setColorFilter(color, mTintMode); mCurrentColor = color; - mCurrentMode = mode; + mCurrentMode = mTintMode; mColorFilterSet = true; return true; } @@ -236,13 +245,26 @@ class DrawableWrapperDonut extends Drawable implements Drawable.Callback, Drawab if (mDrawable != null) { mDrawable.setCallback(null); } - - mDrawable = drawable; + mDrawable = null; if (drawable != null) { + // Copy over the bounds from the drawable + setBounds(drawable.getBounds()); + // Set ourselves as the callback for invalidations drawable.setCallback(this); + } else { + // Clear our bounds + setBounds(0, 0, 0, 0); } + + mDrawable = drawable; + // Invalidate ourselves invalidateSelf(); } + + protected boolean isCompatTintEnabled() { + // It's enabled by default on Donut + return true; + } } |
