Merge "Ensure activity stacks have unique ids."

This commit is contained in:
Bryce Lee
2017-12-06 18:05:51 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 14 deletions

View File

@@ -65,6 +65,12 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> {
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<ActivityStack> {
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<ActivityStack> {
}
}
final int stackId = mSupervisor.getNextStackId();
final int stackId = getNextStackId();
return createStackUnchecked(windowingMode, activityType, stackId, onTop);
}

View File

@@ -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.
*