Merge "Allow caller dismissing split to specify top stack" into rvc-dev am: 3c5ea9cd82
Change-Id: I9feab621d9781fdd5f7b5a99fbfe1575e9840caf
This commit is contained in:
@@ -757,7 +757,7 @@ class ActivityStack extends Task {
|
||||
// warning toast about it.
|
||||
mAtmService.getTaskChangeNotificationController()
|
||||
.notifyActivityDismissingDockedStack();
|
||||
taskDisplayArea.onSplitScreenModeDismissed();
|
||||
taskDisplayArea.onSplitScreenModeDismissed(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2198,7 +2198,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
|
||||
// split-screen in split-screen.
|
||||
mService.getTaskChangeNotificationController()
|
||||
.notifyActivityDismissingDockedStack();
|
||||
taskDisplayArea.onSplitScreenModeDismissed();
|
||||
taskDisplayArea.onSplitScreenModeDismissed(task.getStack());
|
||||
taskDisplayArea.mDisplayContent.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
|
||||
true /* notifyClients */);
|
||||
}
|
||||
|
||||
@@ -1165,17 +1165,23 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
|
||||
}
|
||||
|
||||
void onSplitScreenModeDismissed() {
|
||||
onSplitScreenModeDismissed(null /* toTop */);
|
||||
}
|
||||
|
||||
void onSplitScreenModeDismissed(ActivityStack toTop) {
|
||||
mAtmService.deferWindowLayout();
|
||||
try {
|
||||
mLaunchRootTask = null;
|
||||
moveSplitScreenTasksToFullScreen();
|
||||
} finally {
|
||||
final ActivityStack topFullscreenStack =
|
||||
getTopStackInWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||
final ActivityStack topFullscreenStack = toTop != null
|
||||
? toTop : getTopStackInWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||
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
|
||||
// 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
|
||||
// ActivityDisplay doesn't have a direct controller to WM side yet. We can switch
|
||||
// once we have that.
|
||||
|
||||
Reference in New Issue
Block a user