diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index fd11246ddf66..292ed951b7e7 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -1125,11 +1125,12 @@ class Task extends TaskFragment { if (inMultiWindowMode() || !hasChild()) return false; if (intent != null) { final int returnHomeFlags = FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME; + if ((intent.getFlags() & returnHomeFlags) != returnHomeFlags) { + return false; + } final Task task = getDisplayArea() != null ? getDisplayArea().getRootHomeTask() : null; - final boolean isLockTaskModeViolation = task != null - && mAtmService.getLockTaskController().isLockTaskModeViolation(task); - return (intent.getFlags() & returnHomeFlags) == returnHomeFlags - && !isLockTaskModeViolation; + return !(task != null + && mAtmService.getLockTaskController().isLockTaskModeViolation(task)); } final Task bottomTask = getBottomMostTask(); return bottomTask != this && bottomTask.returnsToHomeRootTask(); |