summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-06-28 18:37:05 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-06-28 18:37:05 +0000
commitc923dcdbd0328d3676e221fefcd8314129f57676 (patch)
treea855e842ddf7e8d75a405b7073882c89b7ce7bfb
parent8542a5886bfa74a8cf627f8b67e14ab67afcd991 (diff)
parent6595e8e69c418d7aaaadeef09bdf778e38215575 (diff)
Merge "Merge "Don't commit invisible on a collecting transient-launch task" into udc-dev am: bdee1f2316 am: cb273e730e"
-rw-r--r--services/core/java/com/android/server/wm/Transition.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 79a54c3cfb32..f2e0260a5b84 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -1101,6 +1101,16 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
final Task task = ar.getTask();
if (task == null) continue;
boolean visibleAtTransitionEnd = mVisibleAtTransitionEndTokens.contains(ar);
+ // visibleAtTransitionEnd is used to guard against pre-maturely committing
+ // invisible on a window which is actually hidden by a later transition and not this
+ // one. However, for a transient launch, we can't use this mechanism because the
+ // visibility is determined at finish. Instead, use a different heuristic: don't
+ // commit invisible if the window is already in a later transition. That later
+ // transition will then handle the commit.
+ if (isTransientLaunch(ar) && !ar.isVisibleRequested()
+ && mController.inCollectingTransition(ar)) {
+ visibleAtTransitionEnd = true;
+ }
// We need both the expected visibility AND current requested-visibility to be
// false. If it is expected-visible but not currently visible, it means that
// another animation is queued-up to animate this to invisibility, so we can't