diff options
| author | 2019-10-30 08:05:57 -0700 | |
|---|---|---|
| committer | 2019-10-30 08:05:57 -0700 | |
| commit | 02e3db14995c7da89f1ab57d288fd2a6d31082a3 (patch) | |
| tree | 1f67b1b93be30004b571f133f437045f580f294f | |
| parent | 7f46f8631fd0557fb25dbf6e335b694375402b82 (diff) | |
| parent | 1b908876297ba6c630020426baa6bc483ffcc64f (diff) | |
Merge "Consolidate ActivityStack#finishCurrentActivityLocked checking"
am: 1b90887629
Change-Id: Icbcdb2d841fd52306f067c7606b78918c6f70894
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStack.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index c5c53d8ba4ca..a18a53dfea92 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -4112,9 +4112,13 @@ class ActivityStack extends ConfigurationContainer { final ActivityDisplay display = getDisplay(); final ActivityRecord next = display.topRunningActivity(true /* considerKeyguardState */); final boolean isFloating = r.getConfiguration().windowConfiguration.tasksAreFloating(); - - if (mode == FINISH_AFTER_VISIBLE && (r.visible || r.nowVisible) - && next != null && !next.nowVisible && !isFloating) { + // isNextNotYetVisible is to check if the next activity is invisible, or it has been + // requested to be invisible but its windows haven't reported as invisible. If so, it + // implied that the current finishing activity should be added into stopping list rather + // than destroying it immediately. + final boolean isNextNotYetVisible = next != null && (!next.nowVisible || !next.visible); + if (mode == FINISH_AFTER_VISIBLE && (r.visible || r.nowVisible) && isNextNotYetVisible + && !isFloating) { if (!mStackSupervisor.mStoppingActivities.contains(r)) { addToStopping(r, false /* scheduleIdle */, false /* idleDelayed */, "finishCurrentActivityLocked"); |