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

Commit 49084b0b authored by Evan Rosky's avatar Evan Rosky
Browse files

Hide leaf-tasks at end of swipe-to-home animation

This is needed for split-screen. Since their leaf tasks
are not "independent", Transitions.java will not hide them
in the finish-transaction (it shouldn't because it doesn't
know if the parent is doing the hiding). In recents' case,
though, we know that the tasks will be hidden at leaf-level
(due to being reparented out of split).

Without hiding here, there will be a flicker after it gets
reparented out of the animation leash, but before the app
visibility is committed in WMCore.

Bug: 228883780
Test: Enter split, swipe-to-home.
Change-Id: I9d0fa1542cb82aabbc89998368864107cee56c72
parent 7d280545
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -388,12 +388,17 @@ public class RemoteTransitionCompat implements Parcelable {
                    wct.restoreTransientOrder(mRecentsTask);
                }
            } else {
                if (!sendUserLeaveHint) {
                for (int i = 0; i < mPausingTasks.size(); ++i) {
                    if (!sendUserLeaveHint) {
                        // This means recents is not *actually* finishing, so of course we gotta
                        // do special stuff in WMCore to accommodate.
                        wct.setDoNotPip(mPausingTasks.get(i));
                    }
                    // Since we will reparent out of the leashes, pre-emptively hide the child
                    // surface to match the leash. Otherwise, there will be a flicker before the
                    // visibility gets committed in Core when using split-screen (in splitscreen,
                    // the leaf-tasks are not "independent" so aren't hidden by normal setup).
                    t.hide(mInfo.getChange(mPausingTasks.get(i)).getLeash());
                }
                if (mPipTask != null && mPipTransaction != null && sendUserLeaveHint) {
                    t.show(mInfo.getChange(mPipTask).getLeash());