From 0b645386d646b0f2d8aedc1847b02bcc0ac3eecd Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Thu, 18 May 2023 17:18:36 -0700 Subject: [PATCH] Always show CHANGE containers in transition setup This shouldn't be necessary, but it acts as a failsafe in case a previous transition messes-up visibility in its finishTransaction. Bug: 280737703 Test: launch app, swipe-to-home, relaunch the app before home animation finishes. Change-Id: Ic7a81e313b35310061c9278ea72c98cc0bf20ef7 --- core/java/android/window/TransitionInfo.java | 3 +++ .../src/com/android/wm/shell/transition/Transitions.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/core/java/android/window/TransitionInfo.java b/core/java/android/window/TransitionInfo.java index c0370cc5517df..8c05130bf5fe4 100644 --- a/core/java/android/window/TransitionInfo.java +++ b/core/java/android/window/TransitionInfo.java @@ -493,6 +493,9 @@ public final class TransitionInfo implements Parcelable { if ((flags & FLAG_FIRST_CUSTOM) != 0) { sb.append(sb.length() == 0 ? "" : "|").append("FIRST_CUSTOM"); } + if ((flags & FLAG_MOVED_TO_TOP) != 0) { + sb.append(sb.length() == 0 ? "" : "|").append("MOVE_TO_TOP"); + } return sb.toString(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java index f33b0778a1b2f..d16b497b5acab 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java @@ -492,6 +492,10 @@ public class Transitions implements RemoteCallable, finishT.show(leash); } else if (mode == TRANSIT_CLOSE || mode == TRANSIT_TO_BACK) { finishT.hide(leash); + } else if (isOpening && mode == TRANSIT_CHANGE) { + // Just in case there is a race with another animation (eg. recents finish()). + // Changes are visible->visible so it's a problem if it isn't visible. + t.show(leash); } } }