diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java index 3946d1cb6cec9..ada30acc68cf2 100644 --- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java @@ -354,7 +354,6 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener if (mPopup != null) { mPopup.dismiss(); } - ((RecentsActivity) mContext).moveTaskToBack(true); } } diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index e994c23b35308..064b3a8cdedf7 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -2910,6 +2910,19 @@ final class ActivityStack { mWindowManager.prepareAppTransition(transit, false); } + void moveHomeTaskToTop() { + final int top = mTaskHistory.size() - 1; + for (int taskNdx = top; taskNdx >= 0; --taskNdx) { + final TaskRecord task = mTaskHistory.get(taskNdx); + if (task.isHomeTask()) { + mTaskHistory.remove(taskNdx); + mTaskHistory.add(top, task); + mWindowManager.moveTaskToTop(task.taskId); + return; + } + } + } + final boolean findTaskToMoveToFrontLocked(int taskId, int flags, Bundle options) { final TaskRecord task = taskForIdLocked(taskId); if (task != null) { diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java index 3e0b5eb04ba76..e0eb2c431ce7e 100644 --- a/services/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/java/com/android/server/am/ActivityStackSupervisor.java @@ -284,6 +284,7 @@ public final class ActivityStackSupervisor { if (prev != null) { prev.mLaunchHomeTaskNext = false; } + mHomeStack.moveHomeTaskToTop(); ActivityRecord r = mHomeStack.topRunningActivityLocked(null); if (r != null) { mService.setFocusedActivityLocked(r); diff --git a/services/java/com/android/server/am/TaskRecord.java b/services/java/com/android/server/am/TaskRecord.java index 63793fa906fff..479665c973d3e 100644 --- a/services/java/com/android/server/am/TaskRecord.java +++ b/services/java/com/android/server/am/TaskRecord.java @@ -322,6 +322,10 @@ final class TaskRecord extends ThumbnailHolder { return subtask.activity; } + boolean isHomeTask() { + return mTaskType == ActivityRecord.HOME_ACTIVITY_TYPE; + } + boolean isApplicationTask() { return mTaskType == ActivityRecord.APPLICATION_ACTIVITY_TYPE; }