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

Commit 9a166c7d authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Mutate scroll bar drawables" into lmp-mr1-dev

parents 69a62a8b f8512ce0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -12872,7 +12872,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                        Interpolator.Result.FREEZE_END) {
                    cache.state = ScrollabilityCache.OFF;
                } else {
                    cache.scrollBar.setAlpha(Math.round(values[0]));
                    cache.scrollBar.mutate().setAlpha(Math.round(values[0]));
                }
                // This will make the scroll bars inval themselves after
@@ -12882,7 +12882,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            } else {
                // We're just on -- but we may have been fading before so
                // reset alpha
                cache.scrollBar.setAlpha(255);
                cache.scrollBar.mutate().setAlpha(255);
            }
+33 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ public class ScrollBarDrawable extends Drawable {
    private final Rect mTempBounds = new Rect();
    private boolean mAlwaysDrawHorizontalTrack;
    private boolean mAlwaysDrawVerticalTrack;
    private boolean mMutated;

    public ScrollBarDrawable() {
    }
@@ -191,6 +192,9 @@ public class ScrollBarDrawable extends Drawable {

    public void setVerticalThumbDrawable(Drawable thumb) {
        if (thumb != null) {
            if (mMutated) {
                thumb.mutate();
            }
            thumb.setState(STATE_ENABLED);
            mVerticalThumb = thumb;
        }
@@ -198,6 +202,9 @@ public class ScrollBarDrawable extends Drawable {

    public void setVerticalTrackDrawable(Drawable track) {
        if (track != null) {
            if (mMutated) {
                track.mutate();
            }
            track.setState(STATE_ENABLED);
        }
        mVerticalTrack = track;
@@ -205,6 +212,9 @@ public class ScrollBarDrawable extends Drawable {

    public void setHorizontalThumbDrawable(Drawable thumb) {
        if (thumb != null) {
            if (mMutated) {
                thumb.mutate();
            }
            thumb.setState(STATE_ENABLED);
            mHorizontalThumb = thumb;
        }
@@ -212,6 +222,9 @@ public class ScrollBarDrawable extends Drawable {

    public void setHorizontalTrackDrawable(Drawable track) {
        if (track != null) {
            if (mMutated) {
                track.mutate();
            }
            track.setState(STATE_ENABLED);
        }
        mHorizontalTrack = track;
@@ -227,6 +240,26 @@ public class ScrollBarDrawable extends Drawable {
        }
    }

    @Override
    public ScrollBarDrawable mutate() {
        if (!mMutated && super.mutate() == this) {
            if (mVerticalTrack != null) {
                mVerticalTrack.mutate();
            }
            if (mVerticalThumb != null) {
                mVerticalThumb.mutate();
            }
            if (mHorizontalTrack != null) {
                mHorizontalTrack.mutate();
            }
            if (mHorizontalThumb != null) {
                mHorizontalThumb.mutate();
            }
            mMutated = true;
        }
        return this;
    }

    @Override
    public void setAlpha(int alpha) {
        if (mVerticalTrack != null) {