summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2024-11-08 04:44:19 +0000
committer Riddle Hsu <riddlehsu@google.com> 2024-11-11 01:53:20 +0000
commit48c6bb3750f8fc9447bce455d1c7fdc34f96e647 (patch)
tree85216e02be1bc3fe7432edc937d901e753e26645
parent66b4d2f754eae14facfadf5b2f1c34989e9f056c (diff)
Only ignore transition change of finishing transient launch
Since I52bb8ecbed7437107c776ad5fdd4b4d4d4d4f962 The visibility change when restoring transient launch is changed from (2) to (1). WindowOrganizerController's finishTransition (1) applyTransaction (2) t.finishTransition So it is also in playing state. With additional transient check, this would also reduce adding the flag accidentally, such as swiping between app and home multiple times very quickly. Bug: 377427846 Flag: EXEMPT bugfix Test: A task contains 2 activities. The first one calls sleep 300ms in onResume (easier to tap nav bar). Finish the top one and tap nav bar quickly. The transition should play normal activity switch animation instead of a jumpcut (disturbed by the change info of transient launch). Change-Id: Id4fe5e0e2f907e68245442fa6a8dcd998caa9087
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 73ae51c6e64a..adb6c1979ea9 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -5549,8 +5549,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
if (!visible) {
if (mTransitionController.inPlayingTransition(this)) {
mTransitionChangeFlags |= FLAG_IS_OCCLUDED;
- } else if (mTransitionController.inFinishingTransition(this)) {
- mTransitionChangeFlags |= FLAGS_IS_OCCLUDED_NO_ANIMATION;
+ if (mTransitionController.mFinishingTransition != null
+ && mTransitionController.mFinishingTransition.isTransientLaunch(this)) {
+ mTransitionChangeFlags |= FLAGS_IS_OCCLUDED_NO_ANIMATION;
+ }
}
} else {
mTransitionChangeFlags &= ~FLAG_IS_OCCLUDED;