summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mady Mellor <madym@google.com> 2021-03-30 17:04:56 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-03-30 17:04:56 +0000
commitf61739c78db42d278d31e14562db38ac99076b9b (patch)
tree671a678cecbecc2bbde6e39048932ed777780b88
parent11ce805c9f1eb66752a5829e3cd26576f6f4ae09 (diff)
parent78a9f2828223391664829b4f420b93f0c6fa3964 (diff)
Merge "DO NOT MERGE Reset top focused root task when task hidden" into rvc-qpr-dev
-rw-r--r--services/core/java/com/android/server/wm/Task.java10
-rw-r--r--services/core/java/com/android/server/wm/TaskDisplayArea.java5
2 files changed, 8 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index db3c74fc94af..b19b8c1ce10b 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -4597,11 +4597,11 @@ class Task extends WindowContainer<WindowContainer> {
}
final boolean wasHidden = isForceHidden();
mForceHiddenFlags = newFlags;
- if (wasHidden && isFocusableAndVisible()) {
- // The change in force-hidden state will change visibility without triggering a stack
- // order change, so we should reset the preferred top focusable stack to ensure it's not
- // used if a new activity is started from this task.
- getDisplayArea().resetPreferredTopFocusableStackIfBelow(this);
+ if (wasHidden != isForceHidden() && isTopActivityFocusable()) {
+ // The change in force-hidden state will change visibility without triggering a root
+ // task order change, so we should reset the preferred top focusable root task to ensure
+ // it's not used if a new activity is started from this task.
+ getDisplayArea().resetPreferredTopFocusableRootTaskIfNeeded(this);
}
return true;
}
diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java
index 79f3b8340b21..676d7e507141 100644
--- a/services/core/java/com/android/server/wm/TaskDisplayArea.java
+++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java
@@ -773,9 +773,10 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
onStackOrderChanged(stack);
}
- void resetPreferredTopFocusableStackIfBelow(Task task) {
+ /** Reset the mPreferredTopFocusableRootTask if it is or below the given task. */
+ void resetPreferredTopFocusableRootTaskIfNeeded(Task task) {
if (mPreferredTopFocusableStack != null
- && mPreferredTopFocusableStack.compareTo(task) < 0) {
+ && mPreferredTopFocusableStack.compareTo(task) <= 0) {
mPreferredTopFocusableStack = null;
}
}