Expose new binder call createStackOnDisplay()
Creates a new, empty ActivityStack on a display. Use the binder call to
launch an activity on said stack.
Bug: 19001243
Change-Id: I0f04e8f2703bcc706f58e75333869fb35f6b1ee9
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 27f8312..ba2f449 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -1569,10 +1569,9 @@
}
// Need to create an app stack for this user.
- int stackId = createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY);
+ mFocusedStack = createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY);
if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, "adjustStackFocus: New stack r=" + r +
- " stackId=" + stackId);
- mFocusedStack = getStack(stackId);
+ " stackId=" + mFocusedStack.mStackId);
return mFocusedStack;
}
return mHomeStack;
@@ -2592,16 +2591,16 @@
}
}
- private int createStackOnDisplay(int stackId, int displayId) {
+ ActivityStack createStackOnDisplay(int stackId, int displayId) {
ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
if (activityDisplay == null) {
- return -1;
+ return null;
}
ActivityContainer activityContainer = new ActivityContainer(stackId);
mActivityContainers.put(stackId, activityContainer);
activityContainer.attachToDisplayLocked(activityDisplay);
- return stackId;
+ return activityContainer.mStack;
}
int getNextStackId() {
@@ -2638,7 +2637,7 @@
// We couldn't find a stack to restore the task to. Possible if are restoring recents
// before an application stack is created...Go ahead and create one on the default
// display.
- stack = getStack(createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY));
+ stack = createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY);
// Restore home stack to top.
moveHomeStack(true);
if (DEBUG_RECENTS)