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

Commit 1c9eb9fc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix issues related to clip rect used in animations" into tm-qpr-dev

parents 48bab40d dd6a3351
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -472,8 +472,9 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
                }
                }


                final Rect clipRect = Transitions.isClosingType(change.getMode())
                final Rect clipRect = Transitions.isClosingType(change.getMode())
                        ? mRotator.getEndBoundsInStartRotation(change)
                        ? new Rect(mRotator.getEndBoundsInStartRotation(change))
                        : change.getEndAbsBounds();
                        : new Rect(change.getEndAbsBounds());
                clipRect.offsetTo(0, 0);


                if (delayedEdgeExtension) {
                if (delayedEdgeExtension) {
                    // If the edge extension needs to happen after the startTransition has been
                    // If the edge extension needs to happen after the startTransition has been
@@ -973,7 +974,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {


    private static void applyTransformation(long time, SurfaceControl.Transaction t,
    private static void applyTransformation(long time, SurfaceControl.Transaction t,
            SurfaceControl leash, Animation anim, Transformation transformation, float[] matrix,
            SurfaceControl leash, Animation anim, Transformation transformation, float[] matrix,
            Point position, float cornerRadius, @Nullable Rect clipRect) {
            Point position, float cornerRadius, @Nullable Rect immutableClipRect) {
        anim.getTransformation(time, transformation);
        anim.getTransformation(time, transformation);
        if (position != null) {
        if (position != null) {
            transformation.getMatrix().postTranslate(position.x, position.y);
            transformation.getMatrix().postTranslate(position.x, position.y);
@@ -981,6 +982,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
        t.setMatrix(leash, transformation.getMatrix(), matrix);
        t.setMatrix(leash, transformation.getMatrix(), matrix);
        t.setAlpha(leash, transformation.getAlpha());
        t.setAlpha(leash, transformation.getAlpha());


        final Rect clipRect = immutableClipRect == null ? null : new Rect(immutableClipRect);
        Insets extensionInsets = Insets.min(transformation.getInsets(), Insets.NONE);
        Insets extensionInsets = Insets.min(transformation.getInsets(), Insets.NONE);
        if (!extensionInsets.equals(Insets.NONE) && clipRect != null && !clipRect.isEmpty()) {
        if (!extensionInsets.equals(Insets.NONE) && clipRect != null && !clipRect.isEmpty()) {
            // Clip out any overflowing edge extension
            // Clip out any overflowing edge extension