Loading services/core/java/com/android/server/wm/ActivityStack.java +18 −4 Original line number Diff line number Diff line Loading @@ -2443,7 +2443,7 @@ class ActivityStack extends Task { forAllActivities(ActivityRecord::removeLaunchTickRunnable); } private void updateTransitLocked(int transit, ActivityOptions options) { private void updateTransitLocked(int transit, ActivityOptions options, boolean forceOverride) { if (options != null) { ActivityRecord r = topRunningActivity(); if (r != null && !r.isState(RESUMED)) { Loading @@ -2452,7 +2452,8 @@ class ActivityStack extends Task { ActivityOptions.abort(options); } } getDisplay().mDisplayContent.prepareAppTransition(transit, false); getDisplay().mDisplayContent.prepareAppTransition(transit, false, 0 /* flags */, forceOverride); } final void moveTaskToFront(Task tr, boolean noAnimation, ActivityOptions options, Loading @@ -2472,8 +2473,17 @@ class ActivityStack extends Task { // nothing to do! if (noAnimation) { ActivityOptions.abort(options); } else if (isSingleTaskInstance()) { // When a task is moved front on the display which can only contain one task, start // a special transition. // {@link AppTransitionController#handleAppTransitionReady} later picks up the // transition, and schedules // {@link ITaskStackListener#onSingleTaskDisplayDrawn} callback which is triggered // after contents are drawn on the display. updateTransitLocked(TRANSIT_SHOW_SINGLE_TASK_DISPLAY, options, true /* forceOverride */); } else { updateTransitLocked(TRANSIT_TASK_TO_FRONT, options); updateTransitLocked(TRANSIT_TASK_TO_FRONT, options, false /* forceOverride */); } return; } Loading Loading @@ -2519,9 +2529,13 @@ class ActivityStack extends Task { mStackSupervisor.mNoAnimActivities.add(r); } ActivityOptions.abort(options); } else if (isSingleTaskInstance()) { updateTransitLocked(TRANSIT_SHOW_SINGLE_TASK_DISPLAY, options, true /* forceOverride */); } else { updateTransitLocked(TRANSIT_TASK_TO_FRONT, options); updateTransitLocked(TRANSIT_TASK_TO_FRONT, options, false /* forceOverride */); } // If a new task is moved to the front, then mark the existing top activity as // supporting Loading services/core/java/com/android/server/wm/RootWindowContainer.java +2 −1 Original line number Diff line number Diff line Loading @@ -2375,7 +2375,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> // triggered after contents are drawn on the display. if (display.isSingleTaskInstance()) { display.mDisplayContent.prepareAppTransition( TRANSIT_SHOW_SINGLE_TASK_DISPLAY, false); TRANSIT_SHOW_SINGLE_TASK_DISPLAY, false, 0 /* flags */, true /* forceOverride*/); } stack.awakeFromSleepingLocked(); if (display.isSingleTaskInstance()) { Loading Loading
services/core/java/com/android/server/wm/ActivityStack.java +18 −4 Original line number Diff line number Diff line Loading @@ -2443,7 +2443,7 @@ class ActivityStack extends Task { forAllActivities(ActivityRecord::removeLaunchTickRunnable); } private void updateTransitLocked(int transit, ActivityOptions options) { private void updateTransitLocked(int transit, ActivityOptions options, boolean forceOverride) { if (options != null) { ActivityRecord r = topRunningActivity(); if (r != null && !r.isState(RESUMED)) { Loading @@ -2452,7 +2452,8 @@ class ActivityStack extends Task { ActivityOptions.abort(options); } } getDisplay().mDisplayContent.prepareAppTransition(transit, false); getDisplay().mDisplayContent.prepareAppTransition(transit, false, 0 /* flags */, forceOverride); } final void moveTaskToFront(Task tr, boolean noAnimation, ActivityOptions options, Loading @@ -2472,8 +2473,17 @@ class ActivityStack extends Task { // nothing to do! if (noAnimation) { ActivityOptions.abort(options); } else if (isSingleTaskInstance()) { // When a task is moved front on the display which can only contain one task, start // a special transition. // {@link AppTransitionController#handleAppTransitionReady} later picks up the // transition, and schedules // {@link ITaskStackListener#onSingleTaskDisplayDrawn} callback which is triggered // after contents are drawn on the display. updateTransitLocked(TRANSIT_SHOW_SINGLE_TASK_DISPLAY, options, true /* forceOverride */); } else { updateTransitLocked(TRANSIT_TASK_TO_FRONT, options); updateTransitLocked(TRANSIT_TASK_TO_FRONT, options, false /* forceOverride */); } return; } Loading Loading @@ -2519,9 +2529,13 @@ class ActivityStack extends Task { mStackSupervisor.mNoAnimActivities.add(r); } ActivityOptions.abort(options); } else if (isSingleTaskInstance()) { updateTransitLocked(TRANSIT_SHOW_SINGLE_TASK_DISPLAY, options, true /* forceOverride */); } else { updateTransitLocked(TRANSIT_TASK_TO_FRONT, options); updateTransitLocked(TRANSIT_TASK_TO_FRONT, options, false /* forceOverride */); } // If a new task is moved to the front, then mark the existing top activity as // supporting Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +2 −1 Original line number Diff line number Diff line Loading @@ -2375,7 +2375,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> // triggered after contents are drawn on the display. if (display.isSingleTaskInstance()) { display.mDisplayContent.prepareAppTransition( TRANSIT_SHOW_SINGLE_TASK_DISPLAY, false); TRANSIT_SHOW_SINGLE_TASK_DISPLAY, false, 0 /* flags */, true /* forceOverride*/); } stack.awakeFromSleepingLocked(); if (display.isSingleTaskInstance()) { Loading