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

Commit 44d4b3b3 authored by John Reck's avatar John Reck Committed by Automerger Merge Worker
Browse files

Merge "Have RippleDrawable ignore non-attached RenderNodes" into sc-dev am: a633284e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15463315

Change-Id: I69a1b6360c877ed2b463b0164ac1be2b5a892ed3
parents d03f9129 a633284e
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ public final class RippleAnimationSession {

    @NonNull RippleAnimationSession enter(Canvas canvas) {
        mStartTime = AnimationUtils.currentAnimationTimeMillis();
        if (isHwAccelerated(canvas)) {
        if (useRTAnimations(canvas)) {
            enterHardware((RecordingCanvas) canvas);
        } else {
            enterSoftware();
@@ -82,7 +82,7 @@ public final class RippleAnimationSession {
    }

    @NonNull RippleAnimationSession exit(Canvas canvas) {
        if (isHwAccelerated(canvas)) exitHardware((RecordingCanvas) canvas);
        if (useRTAnimations(canvas)) exitHardware((RecordingCanvas) canvas);
        else exitSoftware();
        return this;
    }
@@ -102,8 +102,12 @@ public final class RippleAnimationSession {
        return this;
    }

    private boolean isHwAccelerated(Canvas canvas) {
        return canvas.isHardwareAccelerated() && !mForceSoftware;
    private boolean useRTAnimations(Canvas canvas) {
        if (mForceSoftware) return false;
        if (!canvas.isHardwareAccelerated()) return false;
        RecordingCanvas hwCanvas = (RecordingCanvas) canvas;
        if (hwCanvas.mNode == null || !hwCanvas.mNode.isAttached()) return false;
        return true;
    }

    private void exitSoftware() {