summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/java/android/graphics/drawable/Animatable.java2
-rw-r--r--graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java52
-rw-r--r--graphics/java/android/graphics/drawable/AnimationDrawable.java43
-rw-r--r--graphics/java/android/graphics/drawable/BitmapDrawable.java38
-rw-r--r--graphics/java/android/graphics/drawable/ClipDrawable.java14
-rw-r--r--graphics/java/android/graphics/drawable/ColorDrawable.java66
-rw-r--r--graphics/java/android/graphics/drawable/Drawable.java36
-rw-r--r--graphics/java/android/graphics/drawable/DrawableContainer.java29
-rw-r--r--graphics/java/android/graphics/drawable/InsetDrawable.java33
-rw-r--r--graphics/java/android/graphics/drawable/LayerDrawable.java11
-rw-r--r--graphics/java/android/graphics/drawable/MaterialProgressDrawable.java32
-rw-r--r--graphics/java/android/graphics/drawable/NinePatchDrawable.java36
-rw-r--r--graphics/java/android/graphics/drawable/PaintDrawable.java8
-rw-r--r--graphics/java/android/graphics/drawable/PictureDrawable.java16
-rw-r--r--graphics/java/android/graphics/drawable/RotateDrawable.java7
-rw-r--r--graphics/java/android/graphics/drawable/ScaleDrawable.java7
-rw-r--r--graphics/java/android/graphics/drawable/StateListDrawable.java6
-rw-r--r--graphics/java/android/graphics/drawable/TransitionDrawable.java18
-rw-r--r--graphics/java/android/graphics/drawable/VectorDrawable.java45
19 files changed, 152 insertions, 347 deletions
diff --git a/graphics/java/android/graphics/drawable/Animatable.java b/graphics/java/android/graphics/drawable/Animatable.java
index 4edfad4fd7dd..9dc62c36d618 100644
--- a/graphics/java/android/graphics/drawable/Animatable.java
+++ b/graphics/java/android/graphics/drawable/Animatable.java
@@ -32,7 +32,7 @@ public interface Animatable {
/**
* Indicates whether the animation is running.
- *
+ *
* @return True if the animation is running, false otherwise.
*/
boolean isRunning();
diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
index 0fd442382dd6..e8024f7864f0 100644
--- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
@@ -19,8 +19,6 @@ package android.graphics.drawable;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.ColorFilter;
-import android.graphics.PorterDuff.Mode;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.Resources.Theme;
@@ -90,7 +88,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
canvas.restoreToCount(saveCount);
}
- @Override
public void start() {
if (!mRunning) {
mRunning = true;
@@ -98,13 +95,11 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
}
- @Override
public void stop() {
mRunning = false;
unscheduleSelf(this);
}
- @Override
public boolean isRunning() {
return mRunning;
}
@@ -113,11 +108,10 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
unscheduleSelf(this);
scheduleSelf(this, SystemClock.uptimeMillis() + mState.mFrameDuration);
}
-
- @Override
+
public void run() {
// TODO: This should be computed in draw(Canvas), based on the amount
- // of time since the last frame drawn
+ // of time since the last frame drawn
mCurrentDegrees += mIncrement;
if (mCurrentDegrees > (360.0f - mIncrement)) {
mCurrentDegrees = 0.0f;
@@ -125,7 +119,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
invalidateSelf();
nextFrame();
}
-
+
@Override
public boolean setVisible(boolean visible, boolean restart) {
mState.mDrawable.setVisible(visible, restart);
@@ -139,8 +133,8 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
unscheduleSelf(this);
}
return changed;
- }
-
+ }
+
/**
* Returns the drawable rotated by this RotateDrawable.
*/
@@ -154,7 +148,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
| mState.mChangingConfigurations
| mState.mDrawable.getChangingConfigurations();
}
-
+
@Override
public void setAlpha(int alpha) {
mState.mDrawable.setAlpha(alpha);
@@ -171,16 +165,10 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mState.mDrawable.setTint(tint, tintMode);
- }
-
- @Override
public int getOpacity() {
return mState.mDrawable.getOpacity();
}
- @Override
public void invalidateDrawable(Drawable who) {
final Callback callback = getCallback();
if (callback != null) {
@@ -188,7 +176,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
}
- @Override
public void scheduleDrawable(Drawable who, Runnable what, long when) {
final Callback callback = getCallback();
if (callback != null) {
@@ -196,7 +183,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
}
- @Override
public void unscheduleDrawable(Drawable who, Runnable what) {
final Callback callback = getCallback();
if (callback != null) {
@@ -208,7 +194,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
public boolean getPadding(Rect padding) {
return mState.mDrawable.getPadding(padding);
}
-
+
@Override
public boolean isStateful() {
return mState.mDrawable.isStateful();
@@ -220,16 +206,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
@Override
- protected boolean onLevelChange(int level) {
- return mState.mDrawable.setLevel(level);
- }
-
- @Override
- protected boolean onStateChange(int[] state) {
- return mState.mDrawable.setState(state);
- }
-
- @Override
public int getIntrinsicWidth() {
return mState.mDrawable.getIntrinsicWidth();
}
@@ -255,11 +231,11 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
final TypedArray a = r.obtainAttributes(attrs, R.styleable.AnimatedRotateDrawable);
super.inflateWithAttributes(r, parser, a, R.styleable.AnimatedRotateDrawable_visible);
-
+
TypedValue tv = a.peekValue(R.styleable.AnimatedRotateDrawable_pivotX);
final boolean pivotXRel = tv.type == TypedValue.TYPE_FRACTION;
final float pivotX = pivotXRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
-
+
tv = a.peekValue(R.styleable.AnimatedRotateDrawable_pivotY);
final boolean pivotYRel = tv.type == TypedValue.TYPE_FRACTION;
final float pivotY = pivotYRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
@@ -274,7 +250,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
}
a.recycle();
-
+
int outerDepth = parser.getDepth();
int type;
while ((type = parser.next()) != XmlPullParser.END_DOCUMENT &&
@@ -330,7 +306,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
Drawable mDrawable;
int mChangingConfigurations;
-
+
boolean mPivotXRel;
float mPivotX;
boolean mPivotYRel;
@@ -339,7 +315,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
int mFramesCount;
private boolean mCanConstantState;
- private boolean mCheckedConstantState;
+ private boolean mCheckedConstantState;
public AnimatedRotateState(AnimatedRotateState source, AnimatedRotateDrawable owner,
Resources res) {
@@ -365,12 +341,12 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
public Drawable newDrawable() {
return new AnimatedRotateDrawable(this, null);
}
-
+
@Override
public Drawable newDrawable(Resources res) {
return new AnimatedRotateDrawable(this, res);
}
-
+
@Override
public int getChangingConfigurations() {
return mChangingConfigurations;
diff --git a/graphics/java/android/graphics/drawable/AnimationDrawable.java b/graphics/java/android/graphics/drawable/AnimationDrawable.java
index 074076151d56..1ee022490e7b 100644
--- a/graphics/java/android/graphics/drawable/AnimationDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimationDrawable.java
@@ -28,6 +28,7 @@ import android.os.SystemClock;
import android.util.AttributeSet;
/**
+ *
* An object used to create frame-by-frame animations, defined by a series of Drawable objects,
* which can be used as a View object's background.
* <p>
@@ -113,7 +114,6 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
* @see #isRunning()
* @see #stop()
*/
- @Override
public void start() {
if (!isRunning()) {
run();
@@ -127,7 +127,6 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
* @see #isRunning()
* @see #start()
*/
- @Override
public void stop() {
if (isRunning()) {
unscheduleSelf(this);
@@ -139,7 +138,6 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
*
* @return true if the animation is running, false otherwise
*/
- @Override
public boolean isRunning() {
return mAnimating;
}
@@ -150,7 +148,6 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
*
* @see #start()
*/
- @Override
public void run() {
nextFrame(false);
}
@@ -168,41 +165,41 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
public int getNumberOfFrames() {
return mAnimationState.getChildCount();
}
-
+
/**
* @return The Drawable at the specified frame index
*/
public Drawable getFrame(int index) {
return mAnimationState.getChild(index);
}
-
+
/**
- * @return The duration in milliseconds of the frame at the
+ * @return The duration in milliseconds of the frame at the
* specified index
*/
public int getDuration(int i) {
return mAnimationState.mDurations[i];
}
-
+
/**
* @return True of the animation will play once, false otherwise
*/
public boolean isOneShot() {
return mAnimationState.mOneShot;
}
-
+
/**
* Sets whether the animation should play once or repeat.
- *
+ *
* @param oneShot Pass true if the animation should only play once
*/
public void setOneShot(boolean oneShot) {
mAnimationState.mOneShot = oneShot;
}
-
+
/**
* Add a frame to the animation
- *
+ *
* @param frame The frame to add
* @param duration How long in milliseconds the frame should appear
*/
@@ -212,7 +209,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
setFrame(0, true, false);
}
}
-
+
private void nextFrame(boolean unschedule) {
int next = mCurFrame+1;
final int N = mAnimationState.getChildCount();
@@ -242,21 +239,21 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
@Override
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
-
+
TypedArray a = r.obtainAttributes(attrs,
com.android.internal.R.styleable.AnimationDrawable);
super.inflateWithAttributes(r, parser, a,
com.android.internal.R.styleable.AnimationDrawable_visible);
-
+
mAnimationState.setVariablePadding(a.getBoolean(
com.android.internal.R.styleable.AnimationDrawable_variablePadding, false));
-
+
mAnimationState.mOneShot = a.getBoolean(
com.android.internal.R.styleable.AnimationDrawable_oneshot, false);
-
+
a.recycle();
-
+
int type;
final int innerDepth = parser.getDepth()+1;
@@ -270,7 +267,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
if (depth > innerDepth || !parser.getName().equals("item")) {
continue;
}
-
+
a = r.obtainAttributes(attrs, com.android.internal.R.styleable.AnimationDrawableItem);
int duration = a.getInt(
com.android.internal.R.styleable.AnimationDrawableItem_duration, -1);
@@ -281,9 +278,9 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
}
int drawableRes = a.getResourceId(
com.android.internal.R.styleable.AnimationDrawableItem_drawable, 0);
-
+
a.recycle();
-
+
Drawable dr;
if (drawableRes != 0) {
dr = r.getDrawable(drawableRes);
@@ -298,7 +295,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
}
dr = Drawable.createFromXmlInner(r, parser, attrs, theme);
}
-
+
mAnimationState.addFrame(dr, duration);
if (dr != null) {
dr.setCallback(this);
@@ -345,7 +342,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
}
public void addFrame(Drawable dr, int dur) {
- // Do not combine the following. The array index must be evaluated before
+ // Do not combine the following. The array index must be evaluated before
// the array is accessed because super.addChild(dr) has a side effect on mDurations.
int pos = super.addChild(dr);
mDurations[pos] = dur;
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 92f5dad72f4d..ef6c0859f666 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -31,7 +31,6 @@ import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff;
import android.graphics.PorterDuff.Mode;
-import android.graphics.drawable.ColorDrawable.ColorState;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
import android.graphics.Shader;
@@ -619,11 +618,9 @@ public class BitmapDrawable extends Drawable {
@Override
public void setTint(ColorStateList tint, PorterDuff.Mode tintMode) {
- final BitmapState state = mBitmapState;
- state.mTint = tint;
- state.mTintMode = tintMode;
-
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
+ mBitmapState.mTint = tint;
+ mBitmapState.mTintMode = tintMode;
+ computeTintFilter();
invalidateSelf();
}
@@ -641,6 +638,21 @@ public class BitmapDrawable extends Drawable {
return mBitmapState.mTintMode;
}
+ private void computeTintFilter() {
+ final BitmapState state = mBitmapState;
+ if (state.mTint != null && state.mTintMode != null) {
+ final int color = state.mTint.getColorForState(getState(), 0);
+ if (mTintFilter != null) {
+ mTintFilter.setColor(color);
+ mTintFilter.setMode(state.mTintMode);
+ } else {
+ mTintFilter = new PorterDuffColorFilter(color, state.mTintMode);
+ }
+ } else {
+ mTintFilter = null;
+ }
+ }
+
/**
* @hide Candidate for future API inclusion
*/
@@ -667,11 +679,17 @@ public class BitmapDrawable extends Drawable {
@Override
protected boolean onStateChange(int[] stateSet) {
- final BitmapState state = mBitmapState;
- if (state.mTint != null && state.mTintMode != null) {
- mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- return true;
+ final ColorStateList tint = mBitmapState.mTint;
+ if (tint != null) {
+ final int newColor = tint.getColorForState(stateSet, 0);
+ final int oldColor = mTintFilter.getColor();
+ if (oldColor != newColor) {
+ mTintFilter.setColor(newColor);
+ invalidateSelf();
+ return true;
+ }
}
+
return false;
}
diff --git a/graphics/java/android/graphics/drawable/ClipDrawable.java b/graphics/java/android/graphics/drawable/ClipDrawable.java
index 174de3ae7c54..3ac99727b53e 100644
--- a/graphics/java/android/graphics/drawable/ClipDrawable.java
+++ b/graphics/java/android/graphics/drawable/ClipDrawable.java
@@ -19,12 +19,10 @@ package android.graphics.drawable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.Resources.Theme;
import android.graphics.*;
-import android.graphics.PorterDuff.Mode;
import android.view.Gravity;
import android.util.AttributeSet;
@@ -54,7 +52,7 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
public static final int HORIZONTAL = 1;
public static final int VERTICAL = 2;
-
+
ClipDrawable() {
this(null, null);
}
@@ -113,7 +111,6 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
// overrides from Drawable.Callback
- @Override
public void invalidateDrawable(Drawable who) {
final Callback callback = getCallback();
if (callback != null) {
@@ -121,7 +118,6 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
}
}
- @Override
public void scheduleDrawable(Drawable who, Runnable what, long when) {
final Callback callback = getCallback();
if (callback != null) {
@@ -129,7 +125,6 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
}
}
- @Override
public void unscheduleDrawable(Drawable who, Runnable what) {
final Callback callback = getCallback();
if (callback != null) {
@@ -174,11 +169,6 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mClipState.mDrawable.setTint(tint, tintMode);
- }
-
- @Override
public int getOpacity() {
return mClipState.mDrawable.getOpacity();
}
@@ -207,7 +197,7 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
@Override
public void draw(Canvas canvas) {
-
+
if (mClipState.mDrawable.getLevel() == 0) {
return;
}
diff --git a/graphics/java/android/graphics/drawable/ColorDrawable.java b/graphics/java/android/graphics/drawable/ColorDrawable.java
index 754ae6d28dff..df5ca33b9111 100644
--- a/graphics/java/android/graphics/drawable/ColorDrawable.java
+++ b/graphics/java/android/graphics/drawable/ColorDrawable.java
@@ -17,8 +17,6 @@
package android.graphics.drawable;
import android.graphics.*;
-import android.graphics.PorterDuff.Mode;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
@@ -41,13 +39,9 @@ import java.io.IOException;
* @attr ref android.R.styleable#ColorDrawable_color
*/
public class ColorDrawable extends Drawable {
- private final Paint mPaint = new Paint();
-
@ViewDebug.ExportedProperty(deepExport = true, prefix = "state_")
private ColorState mColorState;
- private ColorStateList mTint;
- private PorterDuffColorFilter mTintFilter;
-
+ private final Paint mPaint = new Paint();
private boolean mMutated;
/**
@@ -90,17 +84,9 @@ public class ColorDrawable extends Drawable {
@Override
public void draw(Canvas canvas) {
- final ColorFilter colorFilter = mPaint.getColorFilter();
- if ((mColorState.mUseColor >>> 24) != 0 || colorFilter != null || mTintFilter != null) {
- if (colorFilter == null) {
- mPaint.setColorFilter(mTintFilter);
- }
-
+ if ((mColorState.mUseColor >>> 24) != 0) {
mPaint.setColor(mColorState.mUseColor);
canvas.drawRect(getBounds(), mPaint);
-
- // Restore original color filter.
- mPaint.setColorFilter(colorFilter);
}
}
@@ -154,44 +140,17 @@ public class ColorDrawable extends Drawable {
}
}
+ /**
+ * Setting a color filter on a ColorDrawable has no effect.
+ *
+ * @param colorFilter Ignore.
+ */
@Override
public void setColorFilter(ColorFilter colorFilter) {
- mPaint.setColorFilter(colorFilter);
- }
-
- @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;
-
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
- invalidateSelf();
- }
- }
-
- @Override
- protected boolean onStateChange(int[] stateSet) {
- final ColorState state = mColorState;
- if (state.mTint != null && state.mTintMode != null) {
- mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- return true;
- }
- return false;
- }
-
- @Override
- public boolean isStateful() {
- return mTint != null && mTint.isStateful();
}
@Override
public int getOpacity() {
- if (mTintFilter != null || mPaint.getColorFilter() != null) {
- return PixelFormat.TRANSLUCENT;
- }
-
switch (mColorState.mUseColor >>> 24) {
case 255:
return PixelFormat.OPAQUE;
@@ -206,7 +165,8 @@ public class ColorDrawable extends Drawable {
throws XmlPullParserException, IOException {
super.inflate(r, parser, attrs, theme);
- final TypedArray a = obtainAttributes(r, theme, attrs, R.styleable.ColorDrawable);
+ final TypedArray a = obtainAttributes(
+ r, theme, attrs, R.styleable.ColorDrawable);
inflateStateFromTypedArray(a);
a.recycle();
}
@@ -265,25 +225,21 @@ public class ColorDrawable extends Drawable {
}
final static class ColorState extends ConstantState {
- int[] mThemeAttrs;
int mBaseColor; // base color, independent of setAlpha()
@ViewDebug.ExportedProperty
int mUseColor; // basecolor modulated by setAlpha()
int mChangingConfigurations;
- ColorStateList mTint;
- Mode mTintMode;
+ int[] mThemeAttrs;
ColorState() {
// Empty constructor.
}
ColorState(ColorState state) {
- mThemeAttrs = state.mThemeAttrs;
mBaseColor = state.mBaseColor;
mUseColor = state.mUseColor;
mChangingConfigurations = state.mChangingConfigurations;
- mTint = state.mTint;
- mTintMode = state.mTintMode;
+ mThemeAttrs = state.mThemeAttrs;
}
@Override
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index cb88e3da28ad..6a7757b912e7 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -17,6 +17,13 @@
package android.graphics.drawable;
import android.annotation.NonNull;
+import android.graphics.Insets;
+import android.graphics.Xfermode;
+import android.os.Trace;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
@@ -24,19 +31,15 @@ import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
-import android.graphics.Color;
import android.graphics.ColorFilter;
-import android.graphics.Insets;
import android.graphics.NinePatch;
import android.graphics.Outline;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff;
-import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
import android.graphics.Region;
-import android.graphics.Xfermode;
-import android.os.Trace;
+import android.graphics.PorterDuff.Mode;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.StateSet;
@@ -44,9 +47,6 @@ import android.util.TypedValue;
import android.util.Xml;
import android.view.View;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
import java.io.IOException;
import java.io.InputStream;
import java.lang.ref.WeakReference;
@@ -1226,26 +1226,6 @@ public abstract class Drawable {
}
/**
- * Ensures the tint filter is consistent with the current tint color and
- * mode.
- */
- PorterDuffColorFilter updateTintFilter(PorterDuffColorFilter tintFilter, ColorStateList tint,
- PorterDuff.Mode tintMode) {
- if (tint == null || tintMode == null) {
- return null;
- }
-
- final int color = tint.getColorForState(getState(), Color.TRANSPARENT);
- if (tintFilter == null) {
- return new PorterDuffColorFilter(color, tintMode);
- }
-
- tintFilter.setColor(color);
- tintFilter.setMode(tintMode);
- return tintFilter;
- }
-
- /**
* Obtains styled attributes from the theme, if available, or unstyled
* resources if the theme is null.
*/
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index 8be6eb745c09..2aef39fc3e52 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -16,7 +16,6 @@
package android.graphics.drawable;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.graphics.Canvas;
@@ -24,7 +23,6 @@ import android.graphics.ColorFilter;
import android.graphics.Insets;
import android.graphics.PixelFormat;
import android.graphics.Rect;
-import android.graphics.PorterDuff.Mode;
import android.os.SystemClock;
import android.util.LayoutDirection;
import android.util.SparseArray;
@@ -153,7 +151,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
@Override
public void setColorFilter(ColorFilter cf) {
- mDrawableContainerState.mHasColorFilter = (cf != null);
+ mDrawableContainerState.mHasColorFilter = true;
if (mDrawableContainerState.mColorFilter != cf) {
mDrawableContainerState.mColorFilter = cf;
@@ -164,20 +162,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
}
}
- @Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mDrawableContainerState.mHasTint = (tint != null && tintMode != null);
-
- if (mDrawableContainerState.mTint != tint || mDrawableContainerState.mTintMode != tintMode) {
- mDrawableContainerState.mTint = tint;
- mDrawableContainerState.mTintMode = tintMode;
-
- if (mCurrDrawable != null) {
- mCurrDrawable.mutate().setTint(tint, tintMode);
- }
- }
- }
-
/**
* Change the global fade duration when a new drawable is entering
* the scene.
@@ -412,8 +396,6 @@ 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.setVisible(isVisible(), true);
d.setDither(mDrawableContainerState.mDither);
@@ -584,10 +566,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
ColorFilter mColorFilter;
boolean mHasColorFilter;
- ColorStateList mTint;
- Mode mTintMode;
- boolean mHasTint;
-
DrawableContainerState(DrawableContainerState orig, DrawableContainer owner,
Resources res) {
mOwner = owner;
@@ -610,9 +588,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
mAutoMirrored = orig.mAutoMirrored;
mColorFilter = orig.mColorFilter;
mHasColorFilter = orig.mHasColorFilter;
- mTint = orig.mTint;
- mTintMode = orig.mTintMode;
- mHasTint = orig.mHasTint;
// Cloning the following values may require creating futures.
mConstantPadding = orig.getConstantPadding();
@@ -766,7 +741,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
final int N = mNumChildren;
final Drawable[] drawables = mDrawables;
for (int i = 0; i < N; i++) {
- final Drawable d = drawables[i];
+ final Drawable d = drawables[i];
if (d != null) {
if (d.canApplyTheme()) {
return true;
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index 220e81c5c7d1..9e0ab86e18c5 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -19,12 +19,10 @@ package android.graphics.drawable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.Resources.Theme;
import android.graphics.*;
-import android.graphics.PorterDuff.Mode;
import android.util.AttributeSet;
import android.util.Log;
@@ -46,7 +44,8 @@ import java.io.IOException;
* @attr ref android.R.styleable#InsetDrawable_insetTop
* @attr ref android.R.styleable#InsetDrawable_insetBottom
*/
-public class InsetDrawable extends Drawable implements Drawable.Callback {
+public class InsetDrawable extends Drawable implements Drawable.Callback
+{
// Most of this is copied from ScaleDrawable.
private InsetState mInsetState;
private final Rect mTmpRect = new Rect();
@@ -63,13 +62,13 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
public InsetDrawable(Drawable drawable, int insetLeft, int insetTop,
int insetRight, int insetBottom) {
this(null, null);
-
+
mInsetState.mDrawable = drawable;
mInsetState.mInsetLeft = insetLeft;
mInsetState.mInsetTop = insetTop;
mInsetState.mInsetRight = insetRight;
mInsetState.mInsetBottom = insetBottom;
-
+
if (drawable != null) {
drawable.setCallback(this);
}
@@ -79,7 +78,7 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
int type;
-
+
TypedArray a = r.obtainAttributes(attrs,
com.android.internal.R.styleable.InsetDrawable);
@@ -169,7 +168,7 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
| mInsetState.mChangingConfigurations
| mInsetState.mDrawable.getChangingConfigurations();
}
-
+
@Override
public boolean getPadding(Rect padding) {
boolean pad = mInsetState.mDrawable.getPadding(padding);
@@ -179,7 +178,7 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
padding.top += mInsetState.mInsetTop;
padding.bottom += mInsetState.mInsetBottom;
- if (pad || (mInsetState.mInsetLeft | mInsetState.mInsetRight |
+ if (pad || (mInsetState.mInsetLeft | mInsetState.mInsetRight |
mInsetState.mInsetTop | mInsetState.mInsetBottom) != 0) {
return true;
} else {
@@ -218,11 +217,6 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
mInsetState.mDrawable.setColorFilter(cf);
}
- @Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mInsetState.mDrawable.setTint(tint, tintMode);
- }
-
/** {@hide} */
@Override
public void setLayoutDirection(int layoutDirection) {
@@ -233,7 +227,7 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
public int getOpacity() {
return mInsetState.mDrawable.getOpacity();
}
-
+
@Override
public boolean isStateful() {
return mInsetState.mDrawable.isStateful();
@@ -245,12 +239,7 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
onBoundsChange(getBounds());
return changed;
}
-
- @Override
- protected boolean onLevelChange(int level) {
- return mInsetState.mDrawable.setLevel(level);
- }
-
+
@Override
protected void onBoundsChange(Rect bounds) {
final Rect r = mTmpRect;
@@ -332,12 +321,12 @@ public class InsetDrawable extends Drawable implements Drawable.Callback {
public Drawable newDrawable() {
return new InsetDrawable(this, null);
}
-
+
@Override
public Drawable newDrawable(Resources res) {
return new InsetDrawable(this, res);
}
-
+
@Override
public int getChangingConfigurations() {
return mChangingConfigurations;
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index 5cea7c926304..27f0a9d7c80c 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -16,14 +16,12 @@
package android.graphics.drawable;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.PixelFormat;
-import android.graphics.PorterDuff.Mode;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
@@ -632,15 +630,6 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
}
}
- @Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- final ChildDrawable[] array = mLayerState.mChildren;
- final int N = mLayerState.mNum;
- for (int i = 0; i < N; i++) {
- array[i].mDrawable.setTint(tint, tintMode);
- }
- }
-
/**
* Sets the opacity of this drawable directly, instead of collecting the
* states from the layers
diff --git a/graphics/java/android/graphics/drawable/MaterialProgressDrawable.java b/graphics/java/android/graphics/drawable/MaterialProgressDrawable.java
index 2225f3f2f0c7..9e56f67f4b23 100644
--- a/graphics/java/android/graphics/drawable/MaterialProgressDrawable.java
+++ b/graphics/java/android/graphics/drawable/MaterialProgressDrawable.java
@@ -27,10 +27,8 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
-import android.graphics.PorterDuffColorFilter;
import android.graphics.Paint.Cap;
import android.graphics.Paint.Style;
-import android.graphics.PorterDuff.Mode;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -69,7 +67,6 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
private final Ring mRing;
private MaterialProgressState mState;
- private PorterDuffColorFilter mTintFilter;
/** Canvas rotation in degrees. */
private float mRotation;
@@ -121,21 +118,15 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
}
@Override
- protected boolean onStateChange(int[] stateSet) {
- boolean changed = super.onStateChange(stateSet);
+ protected boolean onStateChange(int[] state) {
+ boolean changed = super.onStateChange(state);
- final MaterialProgressState state = mState;
- final int color = state.mColor.getColorForState(stateSet, Color.TRANSPARENT);
+ final int color = mState.mColor.getColorForState(state, Color.TRANSPARENT);
if (color != mRing.getColor()) {
mRing.setColor(color);
changed = true;
}
- if (state.mTint != null && state.mTintMode != null) {
- mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- changed = true;
- }
-
return changed;
}
@@ -232,24 +223,11 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
return mRing.getColorFilter();
}
- @Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- if (mState.mTint != tint || mState.mTintMode != tintMode) {
- mState.mTint = tint;
- mState.mTintMode = tintMode;
-
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
- invalidateSelf();
- }
- }
-
- @SuppressWarnings("unused")
private void setRotation(float rotation) {
mRotation = rotation;
invalidateSelf();
}
- @SuppressWarnings("unused")
private float getRotation() {
return mRotation;
}
@@ -353,8 +331,6 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
private int mWidth = -1;
private int mHeight = -1;
private ColorStateList mColor = ColorStateList.valueOf(Color.TRANSPARENT);
- private ColorStateList mTint = null;
- private Mode mTintMode = null;
public MaterialProgressState(MaterialProgressState orig) {
if (orig != null) {
@@ -364,8 +340,6 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
mWidth = orig.mWidth;
mHeight = orig.mHeight;
mColor = orig.mColor;
- mTint = orig.mTint;
- mTintMode = orig.mTintMode;
}
}
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index 2cb25831fae0..fea68ee1a4db 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -327,14 +327,27 @@ public class NinePatchDrawable extends Drawable {
@Override
public void setTint(ColorStateList tint, PorterDuff.Mode tintMode) {
- final NinePatchState state = mNinePatchState;
- state.mTint = tint;
- state.mTintMode = tintMode;
-
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
+ mNinePatchState.mTint = tint;
+ mNinePatchState.mTintMode = tintMode;
+ computeTintFilter();
invalidateSelf();
}
+ private void computeTintFilter() {
+ final NinePatchState state = mNinePatchState;
+ if (state.mTint != null && state.mTintMode != null) {
+ final int color = state.mTint.getColorForState(getState(), 0);
+ if (mTintFilter != null) {
+ mTintFilter.setColor(color);
+ mTintFilter.setMode(state.mTintMode);
+ } else {
+ mTintFilter = new PorterDuffColorFilter(color, state.mTintMode);
+ }
+ } else {
+ mTintFilter = null;
+ }
+ }
+
@Override
public void setDither(boolean dither) {
//noinspection PointlessBooleanExpression
@@ -536,10 +549,15 @@ public class NinePatchDrawable extends Drawable {
@Override
protected boolean onStateChange(int[] stateSet) {
- final NinePatchState state = mNinePatchState;
- if (state.mTint != null && state.mTintMode != null) {
- mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- return true;
+ final ColorStateList tint = mNinePatchState.mTint;
+ if (tint != null) {
+ final int newColor = tint.getColorForState(stateSet, 0);
+ final int oldColor = mTintFilter.getColor();
+ if (oldColor != newColor) {
+ mTintFilter.setColor(newColor);
+ invalidateSelf();
+ return true;
+ }
}
return false;
diff --git a/graphics/java/android/graphics/drawable/PaintDrawable.java b/graphics/java/android/graphics/drawable/PaintDrawable.java
index a82e7b950edf..c71cda169737 100644
--- a/graphics/java/android/graphics/drawable/PaintDrawable.java
+++ b/graphics/java/android/graphics/drawable/PaintDrawable.java
@@ -35,7 +35,7 @@ public class PaintDrawable extends ShapeDrawable {
public PaintDrawable(int color) {
getPaint().setColor(color);
}
-
+
/**
* Specify radius for the corners of the rectangle. If this is > 0, then the
* drawable is drawn in a round-rectangle, rather than a rectangle.
@@ -51,7 +51,7 @@ public class PaintDrawable extends ShapeDrawable {
}
setCornerRadii(radii);
}
-
+
/**
* Specify radii for each of the 4 corners. For each corner, the array
* contains 2 values, [X_radius, Y_radius]. The corners are ordered
@@ -78,9 +78,9 @@ public class PaintDrawable extends ShapeDrawable {
int radius = a.getDimensionPixelSize(
com.android.internal.R.styleable.DrawableCorners_radius, 0);
setCornerRadius(radius);
-
+
// now check of they have any per-corner radii
-
+
int topLeftRadius = a.getDimensionPixelSize(
com.android.internal.R.styleable.DrawableCorners_topLeftRadius, radius);
int topRightRadius = a.getDimensionPixelSize(
diff --git a/graphics/java/android/graphics/drawable/PictureDrawable.java b/graphics/java/android/graphics/drawable/PictureDrawable.java
index 6dcda1f56590..cb2d8f67a4ba 100644
--- a/graphics/java/android/graphics/drawable/PictureDrawable.java
+++ b/graphics/java/android/graphics/drawable/PictureDrawable.java
@@ -25,7 +25,7 @@ import android.graphics.Rect;
/**
* Drawable subclass that wraps a Picture, allowing the picture to be used
- * wherever a Drawable is supported.
+ * whereever a Drawable is supported.
*/
public class PictureDrawable extends Drawable {
@@ -40,7 +40,7 @@ public class PictureDrawable extends Drawable {
public PictureDrawable(Picture picture) {
mPicture = picture;
}
-
+
/**
* Return the picture associated with the drawable. May be null.
*
@@ -49,7 +49,7 @@ public class PictureDrawable extends Drawable {
public Picture getPicture() {
return mPicture;
}
-
+
/**
* Associate a picture with this drawable. The picture may be null.
*
@@ -58,7 +58,7 @@ public class PictureDrawable extends Drawable {
public void setPicture(Picture picture) {
mPicture = picture;
}
-
+
@Override
public void draw(Canvas canvas) {
if (mPicture != null) {
@@ -86,16 +86,16 @@ public class PictureDrawable extends Drawable {
// not sure, so be safe
return PixelFormat.TRANSLUCENT;
}
-
+
@Override
public void setFilterBitmap(boolean filter) {}
-
+
@Override
public void setDither(boolean dither) {}
-
+
@Override
public void setColorFilter(ColorFilter colorFilter) {}
-
+
@Override
public void setAlpha(int alpha) {}
}
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index 8f8fa98c8acd..06aeb983b2e3 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -22,8 +22,6 @@ import org.xmlpull.v1.XmlPullParserException;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Rect;
-import android.graphics.PorterDuff.Mode;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.Resources.Theme;
@@ -139,11 +137,6 @@ public class RotateDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mState.mDrawable.setTint(tint, tintMode);
- }
-
- @Override
public int getOpacity() {
return mState.mDrawable.getOpacity();
}
diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java
index 46c92fe82dfb..f090c11bd13e 100644
--- a/graphics/java/android/graphics/drawable/ScaleDrawable.java
+++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java
@@ -19,12 +19,10 @@ package android.graphics.drawable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.Resources.Theme;
import android.graphics.*;
-import android.graphics.PorterDuff.Mode;
import android.view.Gravity;
import android.util.AttributeSet;
@@ -190,11 +188,6 @@ public class ScaleDrawable extends Drawable implements Drawable.Callback {
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- mScaleState.mDrawable.setTint(tint, tintMode);
- }
-
- @Override
public int getOpacity() {
return mScaleState.mDrawable.getOpacity();
}
diff --git a/graphics/java/android/graphics/drawable/StateListDrawable.java b/graphics/java/android/graphics/drawable/StateListDrawable.java
index f359fdd0b475..b2fac9bef74c 100644
--- a/graphics/java/android/graphics/drawable/StateListDrawable.java
+++ b/graphics/java/android/graphics/drawable/StateListDrawable.java
@@ -235,10 +235,10 @@ public class StateListDrawable extends DrawableContainer {
public Drawable getStateDrawable(int index) {
return mStateListState.getChild(index);
}
-
+
/**
* Gets the index of the drawable with the provided state set.
- *
+ *
* @param stateSet the state set to look up
* @return the index of the provided state set, or -1 if not found
* @hide pending API council
@@ -248,7 +248,7 @@ public class StateListDrawable extends DrawableContainer {
public int getStateDrawableIndex(int[] stateSet) {
return mStateListState.indexOfStateSet(stateSet);
}
-
+
@Override
public Drawable mutate() {
if (!mMutated && super.mutate() == this) {
diff --git a/graphics/java/android/graphics/drawable/TransitionDrawable.java b/graphics/java/android/graphics/drawable/TransitionDrawable.java
index 4380ca4e8145..622e90ba4c04 100644
--- a/graphics/java/android/graphics/drawable/TransitionDrawable.java
+++ b/graphics/java/android/graphics/drawable/TransitionDrawable.java
@@ -42,20 +42,20 @@ import android.os.SystemClock;
public class TransitionDrawable extends LayerDrawable implements Drawable.Callback {
/**
- * A transition is about to start.
+ * A transition is about to start.
*/
private static final int TRANSITION_STARTING = 0;
-
+
/**
* The transition has started and the animation is in progress
*/
private static final int TRANSITION_RUNNING = 1;
-
+
/**
* No transition will be applied
*/
private static final int TRANSITION_NONE = 2;
-
+
/**
* The current state of the transition. One of {@link #TRANSITION_STARTING},
* {@link #TRANSITION_RUNNING} and {@link #TRANSITION_NONE}
@@ -101,10 +101,10 @@ public class TransitionDrawable extends LayerDrawable implements Drawable.Callba
LayerState createConstantState(LayerState state, Resources res) {
return new TransitionState((TransitionState) state, this, res);
}
-
+
/**
* Begin the second layer on top of the first layer.
- *
+ *
* @param durationMillis The length of the transition in milliseconds
*/
public void startTransition(int durationMillis) {
@@ -116,7 +116,7 @@ public class TransitionDrawable extends LayerDrawable implements Drawable.Callba
mTransitionState = TRANSITION_STARTING;
invalidateSelf();
}
-
+
/**
* Show only the first layer.
*/
@@ -184,7 +184,7 @@ public class TransitionDrawable extends LayerDrawable implements Drawable.Callba
}
break;
}
-
+
final int alpha = mAlpha;
final boolean crossFade = mCrossFade;
final ChildDrawable[] array = mLayerState.mChildren;
@@ -217,7 +217,7 @@ public class TransitionDrawable extends LayerDrawable implements Drawable.Callba
d.draw(canvas);
d.setAlpha(0xFF);
}
-
+
if (!done) {
invalidateSelf();
}
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index 2c6484a18dd5..c531c224e2e6 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -14,7 +14,6 @@
package android.graphics.drawable;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
@@ -26,10 +25,8 @@ import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.graphics.PixelFormat;
-import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
import android.graphics.Region;
-import android.graphics.PorterDuff.Mode;
import android.util.ArrayMap;
import android.util.AttributeSet;
import android.util.Log;
@@ -140,8 +137,6 @@ public class VectorDrawable extends Drawable {
private final ArrayMap<String, Object> mVGTargetsMap = new ArrayMap<String, Object>();
- private PorterDuffColorFilter mTintFilter;
-
public VectorDrawable() {
mVectorState = new VectorDrawableState(null);
}
@@ -187,45 +182,11 @@ public class VectorDrawable extends Drawable {
@Override
public void setColorFilter(ColorFilter colorFilter) {
- final VectorDrawableState state = mVectorState;
- if (colorFilter != null) {
- // Color filter overrides tint.
- mTintFilter = null;
- } else if (state.mTint != null && state.mTintMode != null) {
- // Restore the tint filter, if we need one.
- final int color = state.mTint.getColorForState(getState(), Color.TRANSPARENT);
- mTintFilter = new PorterDuffColorFilter(color, state.mTintMode);
- colorFilter = mTintFilter;
- }
-
- state.mVPathRenderer.setColorFilter(colorFilter);
+ mVectorState.mVPathRenderer.setColorFilter(colorFilter);
invalidateSelf();
}
@Override
- public void setTint(ColorStateList tint, Mode tintMode) {
- final VectorDrawableState state = mVectorState;
- if (state.mTint != tint || state.mTintMode != tintMode) {
- state.mTint = tint;
- state.mTintMode = tintMode;
-
- mTintFilter = updateTintFilter(mTintFilter, tint, tintMode);
- mVectorState.mVPathRenderer.setColorFilter(mTintFilter);
- invalidateSelf();
- }
- }
-
- @Override
- protected boolean onStateChange(int[] stateSet) {
- final VectorDrawableState state = mVectorState;
- if (state.mTint != null && state.mTintMode != null) {
- mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode);
- return true;
- }
- return false;
- }
-
- @Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
@@ -436,8 +397,6 @@ public class VectorDrawable extends Drawable {
int mChangingConfigurations;
VPathRenderer mVPathRenderer;
Rect mPadding;
- ColorStateList mTint;
- Mode mTintMode;
public VectorDrawableState(VectorDrawableState copy) {
if (copy != null) {
@@ -445,8 +404,6 @@ public class VectorDrawable extends Drawable {
// TODO: Make sure the constant state are handled correctly.
mVPathRenderer = new VPathRenderer(copy.mVPathRenderer);
mPadding = new Rect(copy.mPadding);
- mTint = copy.mTint;
- mTintMode = copy.mTintMode;
}
}