summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mateusz Cicheński <mateuszc@google.com> 2023-04-08 02:55:22 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-08 02:55:22 +0000
commitfb257a4c30506cbcc9da5f78410f29d877f7377d (patch)
tree4ce6612d06cb24b9d8cc20e25bed53fdd9574f86
parent9af3f4558ecba0ded525acbf11ef3c72d219d1ee (diff)
parentcccc9645ec5fc3f3b4fb608641466b77e20bf87b (diff)
Merge "Avoid collecting transient activity in next transition" into udc-dev
-rw-r--r--services/core/java/com/android/server/wm/Transition.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index e209ef97fd7b..714877f87bce 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -918,6 +918,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
final WindowContainer<?> participant = mParticipants.valueAt(i);
final ActivityRecord ar = participant.asActivityRecord();
if (ar != null) {
+ final Task task = ar.getTask();
+ if (task == null) continue;
boolean visibleAtTransitionEnd = mVisibleAtTransitionEndTokens.contains(ar);
// 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
@@ -936,9 +938,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (commitVisibility) {
ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
" Commit activity becoming invisible: %s", ar);
- final Task task = ar.getTask();
- if (task != null && !task.isVisibleRequested()
- && mTransientLaunches != null) {
+ if (mTransientLaunches != null && !task.isVisibleRequested()) {
// If transition is transient, then snapshots are taken at end of
// transition.
mController.mSnapshotController.mTaskSnapshotController
@@ -963,8 +963,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// Since transient launches don't automatically take focus, make sure we
// synchronize focus since we committed to the launch.
- if (ar.isTopRunningActivity()) {
- ar.moveFocusableActivityToTop("transitionFinished");
+ if (!task.isFocused() && ar.isTopRunningActivity()) {
+ mController.mAtm.setLastResumedActivityUncheckLocked(ar,
+ "transitionFinished");
}
}
continue;