Loading services/core/java/com/android/server/wm/ActivityRecord.java +5 −1 Original line number Diff line number Diff line Loading @@ -3074,7 +3074,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mStackSupervisor.getActivityMetricsLogger().notifyActivityRemoved(this); waitingToShow = false; boolean delayed = isAnimating(TRANSITION | CHILDREN); // Defer removal of this activity when either a child is animating, or app transition is on // going. App transition animation might be applied on the parent stack not on the activity, // but the actual frame buffer is associated with the activity, so we have to keep the // activity while a parent is animating. boolean delayed = isAnimating(TRANSITION | PARENTS | CHILDREN); if (getDisplayContent().mClosingApps.contains(this)) { delayed = true; } else if (getDisplayContent().mAppTransition.isTransitionSet()) { Loading services/core/java/com/android/server/wm/ActivityStackSupervisor.java +1 −0 Original line number Diff line number Diff line Loading @@ -1711,6 +1711,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { * invisible as well and added to the stopping list. After which we process the * stopping list by handling the idle. */ stack.cancelAnimation(); stack.mForceHidden = true; stack.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS); stack.mForceHidden = false; Loading services/core/java/com/android/server/wm/AppTransitionController.java +4 −3 Original line number Diff line number Diff line Loading @@ -431,6 +431,8 @@ public class AppTransitionController { while (!candidates.isEmpty()) { final WindowContainer current = candidates.removeFirst(); final WindowContainer parent = current.getParent(); siblings.clear(); siblings.add(current); boolean canPromote = true; if (parent == null) { Loading Loading @@ -468,12 +470,11 @@ public class AppTransitionController { // // [Task] +- [ActivityRecord1] (visible, in opening apps) // +- [ActivityRecord2] (visible, not in opening apps) siblings.clear(); for (int j = 0; j < parent.getChildCount(); ++j) { final WindowContainer sibling = parent.getChildAt(j); if (sibling == current || candidates.remove(sibling)) { if (candidates.remove(sibling)) { siblings.add(sibling); } else if (sibling.isVisible()) { } else if (sibling != current && sibling.isVisible()) { canPromote = false; } } Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +5 −1 Original line number Diff line number Diff line Loading @@ -3074,7 +3074,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mStackSupervisor.getActivityMetricsLogger().notifyActivityRemoved(this); waitingToShow = false; boolean delayed = isAnimating(TRANSITION | CHILDREN); // Defer removal of this activity when either a child is animating, or app transition is on // going. App transition animation might be applied on the parent stack not on the activity, // but the actual frame buffer is associated with the activity, so we have to keep the // activity while a parent is animating. boolean delayed = isAnimating(TRANSITION | PARENTS | CHILDREN); if (getDisplayContent().mClosingApps.contains(this)) { delayed = true; } else if (getDisplayContent().mAppTransition.isTransitionSet()) { Loading
services/core/java/com/android/server/wm/ActivityStackSupervisor.java +1 −0 Original line number Diff line number Diff line Loading @@ -1711,6 +1711,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { * invisible as well and added to the stopping list. After which we process the * stopping list by handling the idle. */ stack.cancelAnimation(); stack.mForceHidden = true; stack.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS); stack.mForceHidden = false; Loading
services/core/java/com/android/server/wm/AppTransitionController.java +4 −3 Original line number Diff line number Diff line Loading @@ -431,6 +431,8 @@ public class AppTransitionController { while (!candidates.isEmpty()) { final WindowContainer current = candidates.removeFirst(); final WindowContainer parent = current.getParent(); siblings.clear(); siblings.add(current); boolean canPromote = true; if (parent == null) { Loading Loading @@ -468,12 +470,11 @@ public class AppTransitionController { // // [Task] +- [ActivityRecord1] (visible, in opening apps) // +- [ActivityRecord2] (visible, not in opening apps) siblings.clear(); for (int j = 0; j < parent.getChildCount(); ++j) { final WindowContainer sibling = parent.getChildAt(j); if (sibling == current || candidates.remove(sibling)) { if (candidates.remove(sibling)) { siblings.add(sibling); } else if (sibling.isVisible()) { } else if (sibling != current && sibling.isVisible()) { canPromote = false; } } Loading