diff options
| author | 2020-09-23 09:51:55 +0000 | |
|---|---|---|
| committer | 2020-09-23 09:51:55 +0000 | |
| commit | 0015e454b6774fa7f5e2cddc21e42bc3ac62845a (patch) | |
| tree | 6024e40dfd59635d8c5de3b574b555060d5c5e93 | |
| parent | 697b5fe2979ca1c4367a7db570e99154a3218beb (diff) | |
| parent | 59a51c6ba9219835d0419b5e5b2cde80bd695b4b (diff) | |
Merge "[RESTRICT AUTOMERGE]Don't finish noHistory activity while it is on the topmost." into rvc-qpr-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStack.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 959aedcd1e4a..6d452c39eccc 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -1700,8 +1700,9 @@ class ActivityStack extends Task { // 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 */); diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index a78232c05397..7af237b80cfa 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1481,9 +1481,10 @@ class ActivityStarter { // anyone interested in this piece of information. final ActivityStack 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); } } |