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

Commit 0fba9250 authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Android (Google) Code Review
Browse files

Merge "Fix java crash for cross task and cross activity back" into main

parents 2f6258bb b0586968
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -199,6 +199,10 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {
    }

    private void applyTransform(SurfaceControl leash, RectF targetRect, float targetAlpha) {
        if (leash == null || !leash.isValid()) {
            return;
        }

        final float scale = targetRect.width() / mStartTaskRect.width();
        mTransformMatrix.reset();
        mTransformMatrix.setScale(scale, scale);
@@ -211,12 +215,16 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {

    private void finishAnimation() {
        if (mEnteringTarget != null) {
            if (mEnteringTarget.leash != null && mEnteringTarget.leash.isValid()) {
                mTransaction.setCornerRadius(mEnteringTarget.leash, 0);
                mEnteringTarget.leash.release();
            }
            mEnteringTarget = null;
        }
        if (mClosingTarget != null) {
            if (mClosingTarget.leash != null) {
                mClosingTarget.leash.release();
            }
            mClosingTarget = null;
        }
        if (mBackground != null) {
@@ -260,7 +268,9 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {
    }

    private void onGestureCommitted() {
        if (mEnteringTarget == null || mClosingTarget == null) {
        if (mEnteringTarget == null || mClosingTarget == null || mClosingTarget.leash == null
                || mEnteringTarget.leash == null || !mEnteringTarget.leash.isValid()
                || !mClosingTarget.leash.isValid()) {
            finishAnimation();
            return;
        }
+4 −2
Original line number Diff line number Diff line
@@ -208,7 +208,9 @@ public class CrossTaskBackAnimation extends ShellBackAnimation {
        float top = mapRange(progress, mClosingStartRect.top, targetTop);
        float width = mapRange(progress, mClosingStartRect.width(), targetWidth);
        float height = mapRange(progress, mClosingStartRect.height(), targetHeight);
        if (mClosingTarget.leash != null && mClosingTarget.leash.isValid()) {
            mTransaction.setLayer(mClosingTarget.leash, 0);
        }

        mClosingCurrentRect.set(left, top, left + width, top + height);
        applyTransform(mClosingTarget.leash, mClosingCurrentRect, mCornerRadius);
@@ -226,7 +228,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation {

    /** Transform the target window to match the target rect. */
    private void applyTransform(SurfaceControl leash, RectF targetRect, float cornerRadius) {
        if (leash == null) {
        if (leash == null || !leash.isValid()) {
            return;
        }