diff options
| author | 2020-09-24 07:45:43 +0000 | |
|---|---|---|
| committer | 2020-09-24 07:45:43 +0000 | |
| commit | df17ab0e4beeb4809be660f1bd1d6f640992a563 (patch) | |
| tree | 04ea29d6adca483c5479b5454926f9d52cb7abff | |
| parent | 1cce0c2f3855c5393cb352660e2aac2c902b9d15 (diff) | |
| parent | 963d1880ca70ce78be4c711fe1b6574ef63ade83 (diff) | |
Merge "Don't finish noHistory activity while it is on the topmost."
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index a9f06813faf5..fa4373ff2f3a 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1497,9 +1497,10 @@ class ActivityStarter { // anyone interested in this piece of information. final Task homeStack = targetTask.getDisplayArea().getRootHomeTask(); final boolean homeTaskVisible = homeStack != null && homeStack.shouldBeVisible(null); + final ActivityRecord top = targetTask.getTopNonFinishingActivity(); + final boolean visible = top != null && top.isVisible(); mService.getTaskChangeNotificationController().notifyActivityRestartAttempt( - targetTask.getTaskInfo(), homeTaskVisible, clearedTask, - targetTask.getTopNonFinishingActivity().isVisible()); + targetTask.getTaskInfo(), homeTaskVisible, clearedTask, visible); } } diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 2a0488d6e230..4a1151bc13fd 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -6039,8 +6039,9 @@ class Task extends WindowContainer<WindowContainer> { // If the most recent activity was noHistory but was only stopped rather // than stopped+finished because the device went to sleep, we need to make // sure to finish it as we're making a new activity topmost. - if (shouldSleepActivities() && mLastNoHistoryActivity != null && - !mLastNoHistoryActivity.finishing) { + if (shouldSleepActivities() && mLastNoHistoryActivity != null + && !mLastNoHistoryActivity.finishing + && mLastNoHistoryActivity != next) { if (DEBUG_STATES) Slog.d(TAG_STATES, "no-history finish of " + mLastNoHistoryActivity + " on new resume"); mLastNoHistoryActivity.finishIfPossible("resume-no-history", false /* oomAdj */); |