am ef2e7667: Merge "[ActivityManager] Avoid keeping restarting home when only home activity exists."

* commit 'ef2e76675a6c60a2a4764a2e19fdb2c4d9beb00e':
  [ActivityManager] Avoid keeping restarting home when only home activity exists.
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 4d6727c..8f777f9 100755
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -3370,6 +3370,7 @@
     boolean forceStopPackageLocked(String name, boolean doit, boolean evenPersistent, int userId) {
         boolean didSomething = false;
         TaskRecord lastTask = null;
+        ComponentName homeActivity = null;
         for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
             final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities;
             int numActivities = activities.size();
@@ -3388,6 +3389,14 @@
                         }
                         return true;
                     }
+                    if (r.isHomeActivity()) {
+                        if (homeActivity != null && homeActivity.equals(r.realActivity)) {
+                            Slog.i(TAG, "Skip force-stop again " + r);
+                            continue;
+                        } else {
+                            homeActivity = r.realActivity;
+                        }
+                    }
                     didSomething = true;
                     Slog.i(TAG, "  Force finishing activity " + r);
                     if (samePackage) {