summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Li <lihongyu@google.com> 2022-03-17 14:26:59 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-03-17 14:26:59 +0000
commitc48dfe548b81c91435ec5ce7ee3e9ddbaa2f1b2c (patch)
tree9285dac483980c8c7a678d48cf03f2cb6808dde4
parent53c2f64d1e2ae417f3cec933e7332750aaf39c5b (diff)
parent906689084a2848e724308fd9c5d97d1cdcfa59c0 (diff)
Merge "[DO NOT MERGE] ActivityEmbedding: hide embedded TaskFragment between adjacent TFs" into sc-v2-dev
-rw-r--r--services/core/java/com/android/server/wm/TaskFragment.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index 24b66ca3ac9c..ae7e96fab1fe 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -822,11 +822,17 @@ class TaskFragment extends WindowContainer<WindowContainer> {
if (!adjacentTaskFragments.isEmpty() && !gotTranslucentAdjacent) {
// The z-order of this TaskFragment is in middle of two adjacent TaskFragments
// and it cannot be visible if the TaskFragment on top is not translucent and
- // is fully occluding this one.
+ // is occluding this one.
+ mTmpRect.set(getBounds());
for (int j = adjacentTaskFragments.size() - 1; j >= 0; --j) {
final TaskFragment taskFragment = adjacentTaskFragments.get(j);
- if (!taskFragment.isTranslucent(starting)
- && taskFragment.getBounds().contains(this.getBounds())) {
+ final TaskFragment adjacentTaskFragment =
+ taskFragment.mAdjacentTaskFragment;
+ if (adjacentTaskFragment == this) {
+ continue;
+ }
+ if (mTmpRect.intersect(taskFragment.getBounds())
+ || mTmpRect.intersect(adjacentTaskFragment.getBounds())) {
return TASK_FRAGMENT_VISIBILITY_INVISIBLE;
}
}