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

Commit de143973 authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Make sure the parent change is set for changes with intermediate parent" into main

parents f6247bd6 6103255c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -542,6 +542,9 @@ public final class TransitionInfo implements Parcelable {
        // independent either.
        if (change.getMode() == TRANSIT_CHANGE) return false;

        // Always fold the activity embedding change into the parent change.
        if (change.hasFlags(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY)) return false;

        TransitionInfo.Change parentChg = info.getChange(change.getParent());
        while (parentChg != null) {
            // If the parent is a visibility change, it will include the results of all child
+5 −0
Original line number Diff line number Diff line
@@ -496,6 +496,7 @@ public class Transitions implements RemoteCallable<Transitions>,
            if (mode == TRANSIT_TO_FRONT) {
                // When the window is moved to front, make sure the crop is updated to prevent it
                // from using the old crop.
                t.setPosition(leash, change.getEndRelOffset().x, change.getEndRelOffset().y);
                t.setWindowCrop(leash, change.getEndAbsBounds().width(),
                        change.getEndAbsBounds().height());
            }
@@ -507,6 +508,10 @@ public class Transitions implements RemoteCallable<Transitions>,
                    t.setMatrix(leash, 1, 0, 0, 1);
                    t.setAlpha(leash, 1.f);
                    t.setPosition(leash, change.getEndRelOffset().x, change.getEndRelOffset().y);
                    t.setWindowCrop(leash, change.getEndAbsBounds().width(),
                            change.getEndAbsBounds().height());
                } else {
                    t.hide(leash);
                }
                continue;
            }
+9 −1
Original line number Diff line number Diff line
@@ -2468,7 +2468,15 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
            for (WindowContainer<?> p = getAnimatableParent(wc); p != null;
                    p = getAnimatableParent(p)) {
                final ChangeInfo parentChange = changes.get(p);
                if (parentChange == null || !parentChange.hasChanged()) break;
                if (parentChange == null) {
                    break;
                }
                if (!parentChange.hasChanged()) {
                    // In case the target is collected after the parent has been changed, it could
                    // be too late to snapshot the parent change. Skip to see if there is any
                    // parent window further up to be considered as change parent.
                    continue;
                }
                if (p.mRemoteToken == null) {
                    // Intermediate parents must be those that has window to be managed by Shell.
                    continue;