diff options
| author | 2020-07-08 07:24:07 +0000 | |
|---|---|---|
| committer | 2020-07-08 07:24:07 +0000 | |
| commit | adf2eec8030308093a412f955d92b2891845cfdb (patch) | |
| tree | f397156946c14f7d3817598a8ec24557980afb33 | |
| parent | 54e6bc1dbb5cc518569130f978a8720eee8b84b7 (diff) | |
| parent | 35cd1a6a87f9f8000f6167da9432a2a1132d29c5 (diff) | |
Merge "Fix bubble shows empty contents after rotating the device." into rvc-dev am: 35cd1a6a87
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12098183
Change-Id: Iaf4f8e7c54e851727ad0a40e60a2a8364875eff3
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStack.java | 22 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/RootWindowContainer.java | 3 |
2 files changed, 20 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index db4c3ea4cf06..e9768a26f571 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -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)) { @@ -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, @@ -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; } @@ -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 diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index c7ffc067427d..4700864c03bc 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -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()) { |