Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4044463a authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Update launch policy state when finishing transient launch" into...

Merge "Update launch policy state when finishing transient launch" into udc-dev am: eb42b383 am: 85ff2df8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21644523



Change-Id: I36e203329d8dd8ecf33c2d625eb3357aefe58878
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 40a6ee23 85ff2df8
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -814,7 +814,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
        }

        boolean hasParticipatedDisplay = false;
        boolean reportTaskStackChanged = false;
        boolean hasVisibleTransientLaunch = false;
        // Commit all going-invisible containers
        for (int i = 0; i < mParticipants.size(); ++i) {
            final WindowContainer<?> participant = mParticipants.valueAt(i);
@@ -857,7 +857,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
                        && ar.isVisible()) {
                    // Transient launch was committed, so report enteringAnimation
                    ar.mEnteringAnimation = true;
                    reportTaskStackChanged = true;
                    hasVisibleTransientLaunch = true;

                    // Since transient launches don't automatically take focus, make sure we
                    // synchronize focus since we committed to the launch.
@@ -901,8 +901,14 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
            }
        }

        if (reportTaskStackChanged) {
        if (hasVisibleTransientLaunch) {
            // Notify the change about the transient-below task that becomes invisible.
            mController.mAtm.getTaskChangeNotificationController().notifyTaskStackChanged();
            // Prevent spurious background app switches.
            mController.mAtm.stopAppSwitches();
            // The end of transient launch may not reorder task, so make sure to compute the latest
            // task rank according to the current visibility.
            mController.mAtm.mRootWindowContainer.rankTaskLayers();
        }

        // dispatch legacy callback in a different loop. This is because multiple legacy handlers
+3 −0
Original line number Diff line number Diff line
@@ -1826,6 +1826,9 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
                    pw.print("F|");
                }
            }
            if ((stateFlags & ACTIVITY_STATE_FLAG_HAS_ACTIVITY_IN_VISIBLE_TASK) != 0) {
                pw.print("VT|");
            }
            final int taskLayer = stateFlags & ACTIVITY_STATE_FLAG_MASK_MIN_TASK_LAYER;
            if (taskLayer != ACTIVITY_STATE_FLAG_MASK_MIN_TASK_LAYER) {
                pw.print("taskLayer=" + taskLayer);
+3 −0
Original line number Diff line number Diff line
@@ -1376,6 +1376,9 @@ public class TransitionTests extends WindowTestsBase {
        enteringAnimReports.clear();
        closeTransition.finishTransition();

        assertEquals(ActivityTaskManagerService.APP_SWITCH_DISALLOW, mAtm.getBalAppSwitchesState());
        assertFalse(activity1.app.hasActivityInVisibleTask());

        verify(snapshotController, times(1)).recordSnapshot(eq(task1), eq(false));
        assertTrue(enteringAnimReports.contains(activity2));
    }