Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cda212d7 authored by Jeff Brown's avatar Jeff Brown
Browse files

Revert "Add support for setTint in all Drawables, clean up lint warnings"

This reverts commit 381f83b613f7b6e71180983dbb992ff62f8dd6e3.

Change-Id: I1181f436c647216ac46162260d9d886197b24568
parent 4b17118a
Loading
Loading
Loading
Loading
+14 −38
Original line number Diff line number Diff line
@@ -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;
    }
@@ -114,7 +109,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
        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 
@@ -170,17 +164,11 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
        mState.mDrawable.setColorFilter(cf);
    }

    @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) {
@@ -219,16 +205,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
        mState.mDrawable.setBounds(bounds.left, bounds.top, bounds.right, bounds.bottom);
    }

    @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();
+20 −23
Original line number Diff line number Diff line
@@ -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);
    }
+28 −10
Original line number Diff line number Diff line
@@ -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);
        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;
    }

+2 −12
Original line number Diff line number Diff line
@@ -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;

@@ -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) {
@@ -173,11 +168,6 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
        mClipState.mDrawable.setColorFilter(cf);
    }

    @Override
    public void setTint(ColorStateList tint, Mode tintMode) {
        mClipState.mDrawable.setTint(tint, tintMode);
    }

    @Override
    public int getOpacity() {
        return mClipState.mDrawable.getOpacity();
+11 −55
Original line number Diff line number Diff line
@@ -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
Loading