Merge \"Don\'t update task to return to type for last task over home\" into nyc-dev
am: 62b08eb5f2
Change-Id: Ib6767e4e7e31c6714687bb89ba51f82c0e5ba4b0
This commit is contained in:
@@ -2581,11 +2581,14 @@ final class ActivityStack {
|
||||
}
|
||||
|
||||
private void insertTaskAtTop(TaskRecord task, ActivityRecord newActivity) {
|
||||
boolean isLastTaskOverHome = false;
|
||||
// If the moving task is over home stack, transfer its return type to next task
|
||||
if (task.isOverHomeStack()) {
|
||||
final TaskRecord nextTask = getNextTask(task);
|
||||
if (nextTask != null) {
|
||||
nextTask.setTaskToReturnTo(task.getTaskToReturnTo());
|
||||
} else {
|
||||
isLastTaskOverHome = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2595,7 +2598,10 @@ final class ActivityStack {
|
||||
ActivityStack lastStack = mStackSupervisor.getLastStack();
|
||||
final boolean fromHome = lastStack.isHomeStack();
|
||||
if (!isHomeStack() && (fromHome || topTask() != task)) {
|
||||
int returnToType = APPLICATION_ACTIVITY_TYPE;
|
||||
// If it's a last task over home - we default to keep its return to type not to
|
||||
// make underlying task focused when this one will be finished.
|
||||
int returnToType = isLastTaskOverHome
|
||||
? task.getTaskToReturnTo() : APPLICATION_ACTIVITY_TYPE;
|
||||
if (fromHome && StackId.allowTopTaskToReturnHome(mStackId)) {
|
||||
returnToType = lastStack.topTask() == null
|
||||
? HOME_ACTIVITY_TYPE : lastStack.topTask().taskType;
|
||||
|
||||
Reference in New Issue
Block a user