summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2019-10-30 08:05:57 -0700
committer android-build-merger <android-build-merger@google.com> 2019-10-30 08:05:57 -0700
commit02e3db14995c7da89f1ab57d288fd2a6d31082a3 (patch)
tree1f67b1b93be30004b571f133f437045f580f294f
parent7f46f8631fd0557fb25dbf6e335b694375402b82 (diff)
parent1b908876297ba6c630020426baa6bc483ffcc64f (diff)
Merge "Consolidate ActivityStack#finishCurrentActivityLocked checking"
am: 1b90887629 Change-Id: Icbcdb2d841fd52306f067c7606b78918c6f70894
-rw-r--r--services/core/java/com/android/server/wm/ActivityStack.java10
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");