summaryrefslogtreecommitdiffstats
path: root/graphics/java/android
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2014-07-28 16:02:55 -0700
committerAlan Viverette <alanv@google.com>2014-08-06 15:42:10 -0700
commita426445dfdab43886dd894f2ba8a1d55bfcbb278 (patch)
tree80d37c447a2b37e310eb41ff73f5ecd4896c7e33 /graphics/java/android
parent33559c96ad4f2847ad2667c6035b8afe2afe2970 (diff)
downloadframeworks_base-a426445dfdab43886dd894f2ba8a1d55bfcbb278.zip
frameworks_base-a426445dfdab43886dd894f2ba8a1d55bfcbb278.tar.gz
frameworks_base-a426445dfdab43886dd894f2ba8a1d55bfcbb278.tar.bz2
Separate tint and tintMode properties
BUG: 16054922 Change-Id: I820fb857b671faf9eb27612e470e820c5c4cd6b5
Diffstat (limited to 'graphics/java/android')
-rw-r--r--graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java9
-rw-r--r--graphics/java/android/graphics/drawable/BitmapDrawable.java14
-rw-r--r--graphics/java/android/graphics/drawable/ClipDrawable.java9
-rw-r--r--graphics/java/android/graphics/drawable/ColorDrawable.java18
-rw-r--r--graphics/java/android/graphics/drawable/Drawable.java38
-rw-r--r--graphics/java/android/graphics/drawable/DrawableContainer.java25
-rw-r--r--graphics/java/android/graphics/drawable/InsetDrawable.java9
-rw-r--r--graphics/java/android/graphics/drawable/LayerDrawable.java13
-rw-r--r--graphics/java/android/graphics/drawable/NinePatchDrawable.java14
-rw-r--r--graphics/java/android/graphics/drawable/RotateDrawable.java9
-rw-r--r--graphics/java/android/graphics/drawable/ScaleDrawable.java9
-rw-r--r--graphics/java/android/graphics/drawable/ShapeDrawable.java14
-rw-r--r--graphics/java/android/graphics/drawable/VectorDrawable.java19
13 files changed, 155 insertions, 45 deletions
diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
index 0fd4423..e3c03a9 100644
--- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
@@ -171,8 +171,13 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mState.mDrawable.setTint(tint, tintMode);
+ public void setTintList(ColorStateList tint) {
+ mState.mDrawable.setTintList(tint);
+ }
+
+ @Override
+ public void setTintMode(Mode tintMode) {
+ mState.mDrawable.setTintMode(tintMode);
}
@Override
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 525e01d..f5e63ae 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -623,12 +623,16 @@ public class BitmapDrawable extends Drawable {
}
@Override
- public void setTint(ColorStateList tint, PorterDuff.Mode tintMode) {
- final BitmapState state = mBitmapState;
- state.mTint = tint;
- state.mTintMode = tintMode;
+ public void setTintList(ColorStateList tint) {
+ mBitmapState.mTint = tint;
+ mTintFilter = updateTintFilter(mTintFilter, tint, mBitmapState.mTintMode);
+ invalidateSelf();
+ }
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
+ @Override
+ public void setTintMode(PorterDuff.Mode tintMode) {
+ mBitmapState.mTintMode = tintMode;
+ mTintFilter = updateTintFilter(mTintFilter, mBitmapState.mTint, tintMode);
invalidateSelf();
}
diff --git a/graphics/java/android/graphics/drawable/ClipDrawable.java b/graphics/java/android/graphics/drawable/ClipDrawable.java
index 174de3a..f116376 100644
--- a/graphics/java/android/graphics/drawable/ClipDrawable.java
+++ b/graphics/java/android/graphics/drawable/ClipDrawable.java
@@ -174,8 +174,13 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mClipState.mDrawable.setTint(tint, tintMode);
+ public void setTintList(ColorStateList tint) {
+ mClipState.mDrawable.setTintList(tint);
+ }
+
+ @Override
+ public void setTintMode(Mode tintMode) {
+ mClipState.mDrawable.setTintMode(tintMode);
}
@Override
diff --git a/graphics/java/android/graphics/drawable/ColorDrawable.java b/graphics/java/android/graphics/drawable/ColorDrawable.java
index 4f050e0..9e42a89 100644
--- a/graphics/java/android/graphics/drawable/ColorDrawable.java
+++ b/graphics/java/android/graphics/drawable/ColorDrawable.java
@@ -167,15 +167,17 @@ public class ColorDrawable extends Drawable {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- final ColorState state = mColorState;
- if (state.mTint != tint || state.mTintMode != tintMode) {
- state.mTint = tint;
- state.mTintMode = tintMode;
+ public void setTintList(ColorStateList tint) {
+ mColorState.mTint = tint;
+ mTintFilter = updateTintFilter(mTintFilter, tint, mColorState.mTintMode);
+ invalidateSelf();
+ }
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
- invalidateSelf();
- }
+ @Override
+ public void setTintMode(Mode tintMode) {
+ mColorState.mTintMode = tintMode;
+ mTintFilter = updateTintFilter(mTintFilter, mColorState.mTint, tintMode);
+ invalidateSelf();
}
@Override
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index df9f3c3..5a3e3a3 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -478,10 +478,48 @@ public abstract class Drawable {
* @param tint Color state list to use for tinting this drawable, or null to
* clear the tint
* @param tintMode A Porter-Duff blending mode
+ * @hide TODO: Was in L-preview, remove this API for release
*/
public void setTint(ColorStateList tint, PorterDuff.Mode tintMode) {}
/**
+ * Specifies a tint for this drawable.
+ * <p>
+ * Setting a color filter via {@link #setColorFilter(ColorFilter)} overrides
+ * tint.
+ *
+ * @param tint Color to use for tinting this drawable
+ * @see #setTintMode(PorterDuff.Mode)
+ */
+ public void setTint(int tint) {
+ setTintList(ColorStateList.valueOf(tint));
+ }
+
+ /**
+ * Specifies a tint for this drawable as a color state list.
+ * <p>
+ * Setting a color filter via {@link #setColorFilter(ColorFilter)} overrides
+ * tint.
+ *
+ * @param tint Color state list to use for tinting this drawable, or null to
+ * clear the tint
+ * @see #setTintMode(PorterDuff.Mode)
+ */
+ public void setTintList(ColorStateList tint) {}
+
+ /**
+ * Specifies a tint blending mode for this drawable.
+ * <p>
+ * Setting a color filter via {@link #setColorFilter(ColorFilter)} overrides
+ * tint.
+ *
+ * @param tintMode Color state list to use for tinting this drawable, or null to
+ * clear the tint
+ * @param tintMode A Porter-Duff blending mode
+ */
+ public void setTintMode(PorterDuff.Mode tintMode) {}
+
+ /**
* Returns the current color filter, or {@code null} if none set.
*
* @return the current color filter, or {@code null} if none set
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index 55bc35e..0b052f4 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -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);
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index f6ccbf5..ee5fe2e 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -260,8 +260,13 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mInsetState.mDrawable.setTint(tint, tintMode);
+ public void setTintList(ColorStateList tint) {
+ mInsetState.mDrawable.setTintList(tint);
+ }
+
+ @Override
+ public void setTintMode(Mode tintMode) {
+ mInsetState.mDrawable.setTintMode(tintMode);
}
/** {@hide} */
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index d094ce4..43bc89a 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -698,11 +698,20 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
+ public void setTintList(ColorStateList tint) {
final ChildDrawable[] array = mLayerState.mChildren;
final int N = mLayerState.mNum;
for (int i = 0; i < N; i++) {
- array[i].mDrawable.setTint(tint, tintMode);
+ array[i].mDrawable.setTintList(tint);
+ }
+ }
+
+ @Override
+ public void setTintMode(Mode tintMode) {
+ final ChildDrawable[] array = mLayerState.mChildren;
+ final int N = mLayerState.mNum;
+ for (int i = 0; i < N; i++) {
+ array[i].mDrawable.setTintMode(tintMode);
}
}
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index 758d42a..6ebb8b5 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -346,12 +346,16 @@ public class NinePatchDrawable extends Drawable {
}
@Override
- public void setTint(ColorStateList tint, PorterDuff.Mode tintMode) {
- final NinePatchState state = mNinePatchState;
- state.mTint = tint;
- state.mTintMode = tintMode;
+ public void setTintList(ColorStateList tint) {
+ mNinePatchState.mTint = tint;
+ mTintFilter = updateTintFilter(mTintFilter, tint, mNinePatchState.mTintMode);
+ invalidateSelf();
+ }
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
+ @Override
+ public void setTintMode(PorterDuff.Mode tintMode) {
+ mNinePatchState.mTintMode = tintMode;
+ mTintFilter = updateTintFilter(mTintFilter, mNinePatchState.mTint, tintMode);
invalidateSelf();
}
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index 8f8fa98..983eb3b 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -139,8 +139,13 @@ public class RotateDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mState.mDrawable.setTint(tint, tintMode);
+ public void setTintList(ColorStateList tint) {
+ mState.mDrawable.setTintList(tint);
+ }
+
+ @Override
+ public void setTintMode(Mode tintMode) {
+ mState.mDrawable.setTintMode(tintMode);
}
@Override
diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java
index 46c92fe..a954474 100644
--- a/graphics/java/android/graphics/drawable/ScaleDrawable.java
+++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java
@@ -190,8 +190,13 @@ public class ScaleDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mScaleState.mDrawable.setTint(tint, tintMode);
+ public void setTintList(ColorStateList tint) {
+ mScaleState.mDrawable.setTintList(tint);
+ }
+
+ @Override
+ public void setTintMode(Mode tintMode) {
+ mScaleState.mDrawable.setTintMode(tintMode);
}
@Override
diff --git a/graphics/java/android/graphics/drawable/ShapeDrawable.java b/graphics/java/android/graphics/drawable/ShapeDrawable.java
index 394f584..6f18635 100644
--- a/graphics/java/android/graphics/drawable/ShapeDrawable.java
+++ b/graphics/java/android/graphics/drawable/ShapeDrawable.java
@@ -285,12 +285,16 @@ public class ShapeDrawable extends Drawable {
}
@Override
- public void setTint(ColorStateList tint, PorterDuff.Mode tintMode) {
- final ShapeState state = mShapeState;
- state.mTint = tint;
- state.mTintMode = tintMode;
+ public void setTintList(ColorStateList tint) {
+ mShapeState.mTint = tint;
+ mTintFilter = updateTintFilter(mTintFilter, tint, mShapeState.mTintMode);
+ invalidateSelf();
+ }
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
+ @Override
+ public void setTintMode(PorterDuff.Mode tintMode) {
+ mShapeState.mTintMode = tintMode;
+ mTintFilter = updateTintFilter(mTintFilter, mShapeState.mTint, tintMode);
invalidateSelf();
}
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index 03d2326..813797f 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -307,14 +307,23 @@ public class VectorDrawable extends Drawable {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
+ public void setTintList(ColorStateList tint) {
final VectorDrawableState state = mVectorState;
- if (state.mTint != tint || state.mTintMode != tintMode) {
+ if (state.mTint != tint) {
state.mTint = tint;
- state.mTintMode = tintMode;
+ mTintFilter = updateTintFilter(mTintFilter, tint, state.mTintMode);
+ state.mVPathRenderer.setColorFilter(mTintFilter);
+ invalidateSelf();
+ }
+ }
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
- mVectorState.mVPathRenderer.setColorFilter(mTintFilter);
+ @Override
+ public void setTintMode(Mode tintMode) {
+ final VectorDrawableState state = mVectorState;
+ if (state.mTintMode != tintMode) {
+ state.mTintMode = tintMode;
+ mTintFilter = updateTintFilter(mTintFilter, state.mTint, tintMode);
+ state.mVPathRenderer.setColorFilter(mTintFilter);
invalidateSelf();
}
}