diff --git a/services/core/java/com/android/server/am/ActivityDisplay.java b/services/core/java/com/android/server/am/ActivityDisplay.java index b11b16e12c3a3..2d2424fe7b590 100644 --- a/services/core/java/com/android/server/am/ActivityDisplay.java +++ b/services/core/java/com/android/server/am/ActivityDisplay.java @@ -65,6 +65,12 @@ class ActivityDisplay extends ConfigurationContainer { static final int POSITION_TOP = Integer.MAX_VALUE; static final int POSITION_BOTTOM = Integer.MIN_VALUE; + + /** + * Counter for next free stack ID to use for dynamic activity stacks. Unique across displays. + */ + private static int sNextFreeStackId = 0; + private ActivityStackSupervisor mSupervisor; /** Actual Display this object tracks. */ int mDisplayId; @@ -231,6 +237,10 @@ class ActivityDisplay extends ConfigurationContainer { return getOrCreateStack(windowingMode, activityType, onTop); } + private int getNextStackId() { + return sNextFreeStackId++; + } + /** * Creates a stack matching the input windowing mode and activity type on this display. * @param windowingMode The windowing mode the stack should be created in. If @@ -278,7 +288,7 @@ class ActivityDisplay extends ConfigurationContainer { } } - final int stackId = mSupervisor.getNextStackId(); + final int stackId = getNextStackId(); return createStackUnchecked(windowingMode, activityType, stackId, onTop); } diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 48c08a5718b9f..cd3b21c63ad64 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -298,9 +298,6 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D private LaunchingBoundsController mLaunchingBoundsController; - /** Counter for next free stack ID to use for dynamic activity stacks. */ - private int mNextFreeStackId = 0; - /** * Maps the task identifier that activities are currently being started in to the userId of the * task. Each time a new task is created, the entry for the userId of the task is incremented @@ -2904,16 +2901,6 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D } } - int getNextStackId() { - while (true) { - if (getStack(mNextFreeStackId) == null) { - break; - } - mNextFreeStackId++; - } - return mNextFreeStackId; - } - /** * Called to restore the state of the task into the stack that it's supposed to go into. *