Merge "Avoid collecting transient activity in next transition" into udc-dev

This commit is contained in:
Mateusz Cicheński
2023-04-08 02:55:22 +00:00
committed by Android (Google) Code Review

View File

@@ -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;