diff options
3 files changed, 11 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 1cbb52f11ce2..539ac1620961 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -3564,7 +3564,10 @@ public class ActivityStackSupervisor extends ConfigurationContainer if (activityDisplay != null) { ArrayList<ActivityStack> stacks = activityDisplay.mStacks; for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) { - stacks.get(stackNdx).mActivityContainer.removeLocked(); + final ActivityStack stack = stacks.get(stackNdx); + // TODO: Implement proper stack removal and ability to choose the behavior - + // remove stack completely or move it to other display. + moveStackToDisplayLocked(stack.mStackId, DEFAULT_DISPLAY); } mActivityDisplays.remove(displayId); } @@ -4215,7 +4218,10 @@ public class ActivityStackSupervisor extends ConfigurationContainer } } - /** Remove the stack completely. */ + /** + * Remove the stack completely. Must be called only when there are no tasks left in it, + * as this method does not finish running activities. + */ void removeLocked() { if (DEBUG_STACK) Slog.d(TAG_STACK, "removeLocked: " + this + " from display=" + mActivityDisplay + " Callers=" + Debug.getCallers(2)); diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java index c96e74f17be4..709c3d0dba5e 100644 --- a/services/core/java/com/android/server/am/ActivityStarter.java +++ b/services/core/java/com/android/server/am/ActivityStarter.java @@ -257,11 +257,7 @@ class ActivityStarter { if (err == ActivityManager.START_SUCCESS) { Slog.i(TAG, "START u" + userId + " {" + intent.toShortString(true, true, true, false) - + "} from uid " + callingUid - + " on display " + (container == null ? (mSupervisor.mFocusedStack == null ? - Display.DEFAULT_DISPLAY : mSupervisor.mFocusedStack.mDisplayId) : - (container.mActivityDisplay == null ? Display.DEFAULT_DISPLAY : - container.mActivityDisplay.mDisplayId))); + + "} from uid " + callingUid); } ActivityRecord sourceRecord = null; diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index c8e35eb0c0f8..e73acde65a3d 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -727,7 +727,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo win.getTouchableRegion(mTmpRegion); mTouchExcludeRegion.op(mTmpRegion, Region.Op.UNION); } - if (getDockedStackLocked() != null) { + // TODO(multi-display): Support docked stacks on secondary displays. + if (mDisplayId == DEFAULT_DISPLAY && getDockedStackLocked() != null) { mDividerControllerLocked.getTouchRegion(mTmpRect); mTmpRegion.set(mTmpRect); mTouchExcludeRegion.op(mTmpRegion, Op.UNION); |