/** Mapping from (ActivityStack/TaskStack).mStackId to their current state */
SparseArray<ActivityContainer> mActivityContainers = new SparseArray<>();
+ // TODO: There should be an ActivityDisplayController coordinating am/wm interaction.
/** Mapping from displayId to display current state */
private final SparseArray<ActivityDisplay> mActivityDisplays = new SparseArray<>();
}
mActivityDisplays.put(displayId, activityDisplay);
calculateDefaultMinimalSizeOfResizeableTasks(activityDisplay);
+ mWindowManager.onDisplayAdded(displayId);
}
}
- if (newDisplay) {
- mWindowManager.onDisplayAdded(displayId);
- }
}
/** Check if display with specified id is added to the list. */
}
}
mActivityDisplays.remove(displayId);
+ mWindowManager.onDisplayRemoved(displayId);
}
}
- mWindowManager.onDisplayRemoved(displayId);
}
private void handleDisplayChanged(int displayId) {
if (activityDisplay != null) {
// TODO: Update the bounds.
}
+ mWindowManager.onDisplayChanged(displayId);
}
- mWindowManager.onDisplayChanged(displayId);
}
private StackInfo getStackInfoLocked(ActivityStack stack) {
init(mVirtualDisplay.getDisplay());
- mWindowManager.handleDisplayAdded(mDisplayId);
+ mWindowManager.onDisplayAdded(mDisplayId);
}
void setSurface(Surface surface) {
public static final int SHOW_STRICT_MODE_VIOLATION = 25;
public static final int DO_ANIMATION_CALLBACK = 26;
- public static final int DO_DISPLAY_ADDED = 27;
- public static final int DO_DISPLAY_REMOVED = 28;
- public static final int DO_DISPLAY_CHANGED = 29;
-
public static final int CLIENT_FREEZE_TIMEOUT = 30;
public static final int TAP_OUTSIDE_TASK = 31;
public static final int NOTIFY_ACTIVITY_DRAWN = 32;
break;
}
- case DO_DISPLAY_ADDED:
- handleDisplayAdded(msg.arg1);
- break;
-
- case DO_DISPLAY_REMOVED:
- synchronized (mWindowMap) {
- handleDisplayRemovedLocked(msg.arg1);
- }
- break;
-
- case DO_DISPLAY_CHANGED:
- synchronized (mWindowMap) {
- handleDisplayChangedLocked(msg.arg1);
- }
- break;
-
case TAP_OUTSIDE_TASK: {
handleTapOutsideTask((DisplayContent)msg.obj, msg.arg1, msg.arg2);
}
}
public void onDisplayAdded(int displayId) {
- mH.sendMessage(mH.obtainMessage(H.DO_DISPLAY_ADDED, displayId, 0));
- }
-
- public void handleDisplayAdded(int displayId) {
synchronized (mWindowMap) {
final Display display = mDisplayManager.getDisplay(displayId);
if (display != null) {
}
public void onDisplayRemoved(int displayId) {
- mH.sendMessage(mH.obtainMessage(H.DO_DISPLAY_REMOVED, displayId, 0));
- }
-
- private void handleDisplayRemovedLocked(int displayId) {
- final DisplayContent displayContent = mRoot.getDisplayContentOrCreate(displayId);
- if (displayContent != null) {
- displayContent.removeIfPossible();
+ synchronized (mWindowMap) {
+ final DisplayContent displayContent = mRoot.getDisplayContentOrCreate(displayId);
+ if (displayContent != null) {
+ displayContent.removeIfPossible();
+ }
+ mAnimator.removeDisplayLocked(displayId);
+ mWindowPlacerLocked.requestTraversal();
}
- mAnimator.removeDisplayLocked(displayId);
- mWindowPlacerLocked.requestTraversal();
}
public void onDisplayChanged(int displayId) {
- mH.sendMessage(mH.obtainMessage(H.DO_DISPLAY_CHANGED, displayId, 0));
- }
-
- private void handleDisplayChangedLocked(int displayId) {
- final DisplayContent displayContent = mRoot.getDisplayContentOrCreate(displayId);
- if (displayContent != null) {
- displayContent.updateDisplayInfo();
+ synchronized (mWindowMap) {
+ final DisplayContent displayContent = mRoot.getDisplayContentOrCreate(displayId);
+ if (displayContent != null) {
+ displayContent.updateDisplayInfo();
+ }
+ mWindowPlacerLocked.requestTraversal();
}
- mWindowPlacerLocked.requestTraversal();
}
@Override