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

Commit ad14c212 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Ripple radius bug" into sc-dev

parents c16a826d 3047cb29
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ public class RippleDrawable extends LayerDrawable {
    private Matrix mMaskMatrix;
    private PorterDuffColorFilter mMaskColorFilter;
    private boolean mHasValidMask;
    private int mComputedRadius = -1;

    /** The current ripple. May be actively animating or pending entry. */
    private RippleForeground mRipple;
@@ -385,9 +386,7 @@ public class RippleDrawable extends LayerDrawable {
            mRipple.onBoundsChange();
        }

        mState.mMaxRadius = mState.mMaxRadius <= 0 && mState.mRippleStyle != STYLE_SOLID
                ? (int) computeRadius()
                : mState.mMaxRadius;
        mComputedRadius = Math.round(computeRadius());
        invalidateSelf();
    }

@@ -918,7 +917,7 @@ public class RippleDrawable extends LayerDrawable {
            ColorFilter origFilter = p.getColorFilter();
            p.setColorFilter(mMaskColorFilter);
            p.setAlpha(alpha);
            c.drawCircle(cx, cy, mState.mMaxRadius, p);
            c.drawCircle(cx, cy, getComputedRadius(), p);
            p.setAlpha(origAlpha);
            p.setColorFilter(origFilter);
        }
@@ -930,11 +929,17 @@ public class RippleDrawable extends LayerDrawable {
        return radius;
    }

    private int getComputedRadius() {
        if (mState.mMaxRadius >= 0) return mState.mMaxRadius;
        if (mComputedRadius >= 0) return mComputedRadius;
        return (int) computeRadius();
    }

    @NonNull
    private RippleAnimationSession.AnimationProperties<Float, Paint> createAnimationProperties(
            float x, float y, float cx, float cy, float w, float h) {
        Paint p = new Paint(mRipplePaint);
        float radius = mState.mMaxRadius;
        float radius = getComputedRadius();
        RippleAnimationSession.AnimationProperties<Float, Paint> properties;
        RippleShader shader = new RippleShader();
        int color = mMaskColorFilter == null