Merge "Allow caller dismissing split to specify top stack" into rvc-dev am: 3c5ea9cd82
Change-Id: Icc0d6b89326683175790e56a156af8f3eb8e6b54
This commit is contained in:
@@ -757,7 +757,7 @@ class ActivityStack extends Task {
|
|||||||
// warning toast about it.
|
// warning toast about it.
|
||||||
mAtmService.getTaskChangeNotificationController()
|
mAtmService.getTaskChangeNotificationController()
|
||||||
.notifyActivityDismissingDockedStack();
|
.notifyActivityDismissingDockedStack();
|
||||||
taskDisplayArea.onSplitScreenModeDismissed();
|
taskDisplayArea.onSplitScreenModeDismissed(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2198,7 +2198,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
|
|||||||
// split-screen in split-screen.
|
// split-screen in split-screen.
|
||||||
mService.getTaskChangeNotificationController()
|
mService.getTaskChangeNotificationController()
|
||||||
.notifyActivityDismissingDockedStack();
|
.notifyActivityDismissingDockedStack();
|
||||||
taskDisplayArea.onSplitScreenModeDismissed();
|
taskDisplayArea.onSplitScreenModeDismissed(task.getStack());
|
||||||
taskDisplayArea.mDisplayContent.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
|
taskDisplayArea.mDisplayContent.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
|
||||||
true /* notifyClients */);
|
true /* notifyClients */);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1165,17 +1165,23 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onSplitScreenModeDismissed() {
|
void onSplitScreenModeDismissed() {
|
||||||
|
onSplitScreenModeDismissed(null /* toTop */);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onSplitScreenModeDismissed(ActivityStack toTop) {
|
||||||
mAtmService.deferWindowLayout();
|
mAtmService.deferWindowLayout();
|
||||||
try {
|
try {
|
||||||
mLaunchRootTask = null;
|
mLaunchRootTask = null;
|
||||||
moveSplitScreenTasksToFullScreen();
|
moveSplitScreenTasksToFullScreen();
|
||||||
} finally {
|
} finally {
|
||||||
final ActivityStack topFullscreenStack =
|
final ActivityStack topFullscreenStack = toTop != null
|
||||||
getTopStackInWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
? toTop : getTopStackInWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||||
final ActivityStack homeStack = getOrCreateRootHomeTask();
|
final ActivityStack homeStack = getOrCreateRootHomeTask();
|
||||||
if (topFullscreenStack != null && homeStack != null && !isTopStack(homeStack)) {
|
if (homeStack != null && ((topFullscreenStack != null && !isTopStack(homeStack))
|
||||||
|
|| toTop != null)) {
|
||||||
// Whenever split-screen is dismissed we want the home stack directly behind the
|
// Whenever split-screen is dismissed we want the home stack directly behind the
|
||||||
// current top fullscreen stack so it shows up when the top stack is finished.
|
// current top fullscreen stack so it shows up when the top stack is finished.
|
||||||
|
// Or, if the caller specified a stack to be on top after split-screen is dismissed.
|
||||||
// TODO: Would be better to use ActivityDisplay.positionChildAt() for this, however
|
// TODO: Would be better to use ActivityDisplay.positionChildAt() for this, however
|
||||||
// ActivityDisplay doesn't have a direct controller to WM side yet. We can switch
|
// ActivityDisplay doesn't have a direct controller to WM side yet. We can switch
|
||||||
// once we have that.
|
// once we have that.
|
||||||
|
|||||||
Reference in New Issue
Block a user