Merge "Update launch policy state when finishing transient launch" into udc-dev
This commit is contained in:
@@ -813,7 +813,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);
|
||||
@@ -856,7 +856,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.
|
||||
@@ -900,8 +900,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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user