summaryrefslogtreecommitdiffstats
path: root/v4/donut/android
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-03-10 19:23:13 -0800
committerSteve Kondik <steve@cyngn.com>2016-03-10 19:23:13 -0800
commit98e06d73262bc654d546ef2ded2cd6c4db5b92bf (patch)
treed923c571c21849bf53185b26e3570fdb25fabff9 /v4/donut/android
parent6f0a2cb4415e2e170528c038a8f1cc2f68f60c3c (diff)
parent4097efdd93078034122f17442d5b4df675d1028a (diff)
downloadandroid_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')
-rw-r--r--v4/donut/android/support/v4/animation/ValueAnimatorCompat.java2
-rw-r--r--v4/donut/android/support/v4/graphics/drawable/DrawableCompatBase.java6
-rw-r--r--v4/donut/android/support/v4/graphics/drawable/DrawableWrapper.java6
-rw-r--r--v4/donut/android/support/v4/graphics/drawable/DrawableWrapperDonut.java52
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;
+ }
}