Loading services/core/java/com/android/server/am/ActivityStack.java +1 −7 Original line number Original line Diff line number Diff line Loading @@ -2581,14 +2581,11 @@ final class ActivityStack { } } private void insertTaskAtTop(TaskRecord task, ActivityRecord newActivity) { 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 the moving task is over home stack, transfer its return type to next task if (task.isOverHomeStack()) { if (task.isOverHomeStack()) { final TaskRecord nextTask = getNextTask(task); final TaskRecord nextTask = getNextTask(task); if (nextTask != null) { if (nextTask != null) { nextTask.setTaskToReturnTo(task.getTaskToReturnTo()); nextTask.setTaskToReturnTo(task.getTaskToReturnTo()); } else { isLastTaskOverHome = true; } } } } Loading @@ -2598,10 +2595,7 @@ final class ActivityStack { ActivityStack lastStack = mStackSupervisor.getLastStack(); ActivityStack lastStack = mStackSupervisor.getLastStack(); final boolean fromHome = lastStack.isHomeStack(); final boolean fromHome = lastStack.isHomeStack(); if (!isHomeStack() && (fromHome || topTask() != task)) { if (!isHomeStack() && (fromHome || topTask() != task)) { // If it's a last task over home - we default to keep its return to type not to int returnToType = APPLICATION_ACTIVITY_TYPE; // make underlying task focused when this one will be finished. int returnToType = isLastTaskOverHome ? task.getTaskToReturnTo() : APPLICATION_ACTIVITY_TYPE; if (fromHome && StackId.allowTopTaskToReturnHome(mStackId)) { if (fromHome && StackId.allowTopTaskToReturnHome(mStackId)) { returnToType = lastStack.topTask() == null returnToType = lastStack.topTask() == null ? HOME_ACTIVITY_TYPE : lastStack.topTask().taskType; ? HOME_ACTIVITY_TYPE : lastStack.topTask().taskType; Loading Loading
services/core/java/com/android/server/am/ActivityStack.java +1 −7 Original line number Original line Diff line number Diff line Loading @@ -2581,14 +2581,11 @@ final class ActivityStack { } } private void insertTaskAtTop(TaskRecord task, ActivityRecord newActivity) { 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 the moving task is over home stack, transfer its return type to next task if (task.isOverHomeStack()) { if (task.isOverHomeStack()) { final TaskRecord nextTask = getNextTask(task); final TaskRecord nextTask = getNextTask(task); if (nextTask != null) { if (nextTask != null) { nextTask.setTaskToReturnTo(task.getTaskToReturnTo()); nextTask.setTaskToReturnTo(task.getTaskToReturnTo()); } else { isLastTaskOverHome = true; } } } } Loading @@ -2598,10 +2595,7 @@ final class ActivityStack { ActivityStack lastStack = mStackSupervisor.getLastStack(); ActivityStack lastStack = mStackSupervisor.getLastStack(); final boolean fromHome = lastStack.isHomeStack(); final boolean fromHome = lastStack.isHomeStack(); if (!isHomeStack() && (fromHome || topTask() != task)) { if (!isHomeStack() && (fromHome || topTask() != task)) { // If it's a last task over home - we default to keep its return to type not to int returnToType = APPLICATION_ACTIVITY_TYPE; // make underlying task focused when this one will be finished. int returnToType = isLastTaskOverHome ? task.getTaskToReturnTo() : APPLICATION_ACTIVITY_TYPE; if (fromHome && StackId.allowTopTaskToReturnHome(mStackId)) { if (fromHome && StackId.allowTopTaskToReturnHome(mStackId)) { returnToType = lastStack.topTask() == null returnToType = lastStack.topTask() == null ? HOME_ACTIVITY_TYPE : lastStack.topTask().taskType; ? HOME_ACTIVITY_TYPE : lastStack.topTask().taskType; Loading