When removing a task that was on home, put home on top.

Killing an app that was launched from home was not relaunching home.
Previous situations relaunched the next app (i.e. home) based on the
task flag. However, when an app dies the relaunch is deferred until
the TaskRecord has long been forgotten. This fix rearranges the stacks
immediately upon the TaskRecord being removed from the stack. Then the
next resumeTopActivities() call will start the home task.

Fixes bug 11189555.

Change-Id: I0e09350a7db55ea8b38cce7bf4b69923a6b99494
diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java
index d758cd4..040f0ac 100644
--- a/services/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/java/com/android/server/am/ActivityStackSupervisor.java
@@ -278,12 +278,16 @@
         }
     }
 
-    boolean resumeHomeActivity(ActivityRecord prev) {
+    void moveHomeToTop() {
         moveHomeStack(true);
+        mHomeStack.moveHomeTaskToTop();
+    }
+
+    boolean resumeHomeActivity(ActivityRecord prev) {
+        moveHomeToTop();
         if (prev != null) {
             prev.task.mOnTopOfHome = false;
         }
-        mHomeStack.moveHomeTaskToTop();
         ActivityRecord r = mHomeStack.topRunningActivityLocked(null);
         if (r != null && r.isHomeActivity()) {
             mService.setFocusedActivityLocked(r);
@@ -625,7 +629,7 @@
     }
 
     void startHomeActivity(Intent intent, ActivityInfo aInfo) {
-        moveHomeStack(true);
+        moveHomeToTop();
         startActivityLocked(null, intent, null, aInfo, null, null, 0, 0, 0, null, 0,
                 null, false, null);
     }
@@ -1906,7 +1910,7 @@
         return r;
     }
 
-    boolean handleAppDiedLocked(ProcessRecord app, boolean restarting) {
+    boolean handleAppDiedLocked(ProcessRecord app) {
         boolean hasVisibleActivities = false;
         for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
             hasVisibleActivities |= mStacks.get(stackNdx).handleAppDiedLocked(app);