Loading services/core/java/com/android/server/am/ActivityStack.java +7 −1 Original line number Diff line number Diff line Loading @@ -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; } } Loading @@ -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; Loading Loading
services/core/java/com/android/server/am/ActivityStack.java +7 −1 Original line number Diff line number Diff line Loading @@ -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; } } Loading @@ -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; Loading