From 232ec86d5118ecb959fb6acaecef3aa8b7d3f473 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Fri, 24 Sep 2021 18:46:38 +0800 Subject: [PATCH] Fix finishing adjacent TaskFragments occludes activities below Same as commit 33efd88, the TaskFragment without running activity should be ignored while calculating activity visibility. Bug: 200316506 Test: TaskFragmentOrganizerTest TaskFragmentOrganizerPolicyTest Change-Id: Iad41edfb6055fff29360e6b4b543ff8ae724d2c3 --- .../android/server/wm/EnsureActivitiesVisibleHelper.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java b/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java index 852a6583b6800..6560d15ca7446 100644 --- a/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java +++ b/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java @@ -103,13 +103,12 @@ class EnsureActivitiesVisibleHelper { ArrayList adjacentTaskFragments = null; for (int i = mTaskFragment.mChildren.size() - 1; i >= 0; --i) { final WindowContainer child = mTaskFragment.mChildren.get(i); - if (child.asTaskFragment() != null) { - final TaskFragment childTaskFragment = child.asTaskFragment(); + final TaskFragment childTaskFragment = child.asTaskFragment(); + if (childTaskFragment != null && childTaskFragment.topRunningActivity() != null) { childTaskFragment.updateActivityVisibilities(starting, configChanges, preserveWindows, notifyClients); mBehindFullyOccludedContainer |= - childTaskFragment.topRunningActivity() != null - && childTaskFragment.getBounds().equals(mTaskFragment.getBounds()); + childTaskFragment.getBounds().equals(mTaskFragment.getBounds()); if (mAboveTop && mTop.getTaskFragment() == childTaskFragment) { mAboveTop = false; }