summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2021-11-12 06:13:06 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-11-12 06:13:06 +0000
commite171c540da8fbc9f8ff28cc284228771c926c16a (patch)
tree4b51c721ac4e42e71d39f655706277fc21f6dea3
parente8e382c03fa9dcc2c973c92516ce6fee73f1aa8f (diff)
parentd41841f469f3a9e134615e21674507454e0035af (diff)
Merge "Consider the lock-task mode while using FLAG_ACTIVITY_TASK_ON_HOME" into sc-v2-dev
-rw-r--r--services/core/java/com/android/server/wm/Task.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 4190ff0b9bc7..1b7a012094f6 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -1126,7 +1126,11 @@ class Task extends TaskFragment {
if (inMultiWindowMode() || !hasChild()) return false;
if (intent != null) {
final int returnHomeFlags = FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME;
- return intent != null && (intent.getFlags() & returnHomeFlags) == returnHomeFlags;
+ final Task task = getDisplayArea() != null ? getDisplayArea().getRootHomeTask() : null;
+ final boolean isLockTaskModeViolation = task != null
+ && mAtmService.getLockTaskController().isLockTaskModeViolation(task);
+ return (intent.getFlags() & returnHomeFlags) == returnHomeFlags
+ && !isLockTaskModeViolation;
}
final Task bottomTask = getBottomMostTask();
return bottomTask != this && bottomTask.returnsToHomeRootTask();