}
}
- public void createStack(int stackId, int displayId) {
- mH.sendMessage(mH.obtainMessage(H.CREATE_STACK, stackId, displayId));
- }
-
/**
- * Create a new TaskStack and place it next to an existing stack.
+ * Create a new TaskStack and place it on a DisplayContent.
* @param stackId The unique identifier of the new stack.
+ * @param displayId The unique identifier of the DisplayContent.
*/
- private void createStackLocked(int stackId, int displayId) {
+ public void createStack(int stackId, int displayId) {
final long origId = Binder.clearCallingIdentity();
try {
synchronized (mWindowMap) {
- final int numDisplays = mDisplayContents.size();
- for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
- final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
- if (displayContent.getDisplayId() == displayId) {
- TaskStack stack = displayContent.createStack(stackId);
- mStackIdToStack.put(stackId, stack);
- performLayoutAndPlaceSurfacesLocked();
- return;
- }
+ final DisplayContent displayContent = mDisplayContents.get(displayId);
+ if (displayContent != null) {
+ TaskStack stack = displayContent.createStack(stackId);
+ mStackIdToStack.put(stackId, stack);
+ performLayoutAndPlaceSurfacesLocked();
}
}
} finally {
public static final int REMOVE_STARTING_TIMEOUT = 33;
- public static final int CREATE_STACK = 34;
-
@Override
public void handleMessage(Message msg) {
if (DEBUG_WINDOW_TRACE) {
} catch (RemoteException e) {
}
break;
- case CREATE_STACK:
- synchronized (mWindowMap) {
- createStackLocked(msg.arg1, msg.arg2);
- }
- break;
}
if (DEBUG_WINDOW_TRACE) {
Slog.v(TAG, "handleMessage: exit");