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

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

Merge "Move ripple to end state on jump when hardware exit is pending" into lmp-mr1-dev

parents bb177db1 9bc11ac1
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -214,7 +214,7 @@ class Ripple {
        final boolean canUseHardware = c.isHardwareAccelerated();
        if (mCanUseHardware != canUseHardware && mCanUseHardware) {
            // We've switched from hardware to non-hardware mode. Panic.
            cancelHardwareAnimations(true);
            cancelHardwareAnimations(false);
        }
        mCanUseHardware = canUseHardware;

@@ -493,7 +493,7 @@ class Ripple {
    public void cancel() {
        mCanceled = true;
        cancelSoftwareAnimations();
        cancelHardwareAnimations(true);
        cancelHardwareAnimations(false);
        mCanceled = false;
    }

@@ -522,15 +522,30 @@ class Ripple {
    /**
     * Cancels any running hardware animations.
     */
    private void cancelHardwareAnimations(boolean cancelPending) {
    private void cancelHardwareAnimations(boolean jumpToEnd) {
        final ArrayList<RenderNodeAnimator> runningAnimations = mRunningAnimations;
        final int N = runningAnimations.size();
        for (int i = 0; i < N; i++) {
            if (jumpToEnd) {
                runningAnimations.get(i).end();
            } else {
                runningAnimations.get(i).cancel();
            }
        }
        runningAnimations.clear();

        if (mHasPendingHardwareExit) {
            // If we had a pending hardware exit, jump to the end state.
            mHasPendingHardwareExit = false;

            if (jumpToEnd) {
                mOpacity = 0;
                mTweenX = 1;
                mTweenY = 1;
                mTweenRadius = 1;
            }
        }

        mHardwareAnimating = false;
    }

+17 −5
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ class RippleBackground {
        final boolean canUseHardware = c.isHardwareAccelerated();
        if (mCanUseHardware != canUseHardware && mCanUseHardware) {
            // We've switched from hardware to non-hardware mode. Panic.
            cancelHardwareAnimations(true);
            cancelHardwareAnimations(false);
        }
        mCanUseHardware = canUseHardware;

@@ -399,7 +399,7 @@ class RippleBackground {
     */
    public void cancel() {
        cancelSoftwareAnimations();
        cancelHardwareAnimations(true);
        cancelHardwareAnimations(false);
    }

    private void cancelSoftwareAnimations() {
@@ -412,15 +412,27 @@ class RippleBackground {
    /**
     * Cancels any running hardware animations.
     */
    private void cancelHardwareAnimations(boolean cancelPending) {
    private void cancelHardwareAnimations(boolean jumpToEnd) {
        final ArrayList<RenderNodeAnimator> runningAnimations = mRunningAnimations;
        final int N = runningAnimations.size();
        for (int i = 0; i < N; i++) {
            if (jumpToEnd) {
                runningAnimations.get(i).end();
            } else {
                runningAnimations.get(i).cancel();
            }
        }
        runningAnimations.clear();

        if (mHasPendingHardwareExit) {
            // If we had a pending hardware exit, jump to the end state.
            mHasPendingHardwareExit = false;

            if (jumpToEnd) {
                mOuterOpacity = 0;
            }
        }

        mHardwareAnimating = false;
    }