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

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

Merge "Only force drawing in RippleDrawable when necessary" into lmp-dev

parents 12981923 8683a4f8
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -155,6 +155,13 @@ public class RippleDrawable extends LayerDrawable {
    /** Whether bounds are being overridden. */
    private boolean mOverrideBounds;

    /**
     * Whether the next draw MUST draw something to canvas. Used to work around
     * a bug in hardware invalidation following a render thread-accelerated
     * animation.
     */
    private boolean mNeedsDraw;

    /**
     * Constructor used for drawable inflation.
     */
@@ -204,6 +211,8 @@ public class RippleDrawable extends LayerDrawable {
        }

        cancelExitingRipples();

        mNeedsDraw = true;
        invalidateSelf();
    }

@@ -548,6 +557,8 @@ public class RippleDrawable extends LayerDrawable {
        }

        cancelExitingRipples();

        mNeedsDraw = true;
        invalidateSelf();
    }

@@ -642,11 +653,12 @@ public class RippleDrawable extends LayerDrawable {
            canvas.restoreToCount(rippleLayer);
        }

        // If we failed to draw anything, at least draw a color so that
        // invalidation works correctly.
        if (contentLayer < 0 && backgroundLayer < 0 && rippleLayer < 0) {
        // If we failed to draw anything and we just canceled animations, at
        // least draw a color so that hardware invalidation works correctly.
        if (contentLayer < 0 && backgroundLayer < 0 && rippleLayer < 0 && mNeedsDraw) {
            canvas.drawColor(Color.TRANSPARENT);
        }
        mNeedsDraw = false;

        canvas.restoreToCount(saveCount);
    }