summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmds/bootanimation/BootAnimation.cpp3
-rw-r--r--services/java/com/android/server/am/ActivityStack.java15
2 files changed, 15 insertions, 3 deletions
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index 9085dc3..a7ced44 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -307,9 +307,6 @@ bool BootAnimation::threadLoop()
r = movie();
}
- // No need to force exit anymore
- property_set(EXIT_PROP_NAME, "0");
-
eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglDestroyContext(mDisplay, mContext);
eglDestroySurface(mDisplay, mSurface);
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 2e914aa..14d1d13 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -1769,6 +1769,21 @@ final class ActivityStack {
r.putInHistory();
r.frontOfTask = newTask;
+ if (!r.frontOfTask) {
+ // It is possible that the current frontOfTask activity is finishing. Check for that.
+ ArrayList<ActivityRecord> activities = task.mActivities;
+ for (int activityNdx = 0; activityNdx < activities.size(); ++activityNdx) {
+ final ActivityRecord activity = activities.get(activityNdx);
+ if (activity.finishing) {
+ continue;
+ }
+ if (activity == r) {
+ // All activities before r are finishing.
+ r.frontOfTask = true;
+ }
+ break;
+ }
+ }
if (!isHomeStack() || numActivities() > 0) {
// We want to show the starting preview window if we are
// switching to a new task, or the next activity's process is