From 0514dacd3e78ed3b72cf03b9f5690d410429eee9 Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Fri, 17 Sep 2021 15:49:26 +0800 Subject: [PATCH] Fix staring window being hide after AR#commitVisibility For legacy app transition, a visible activity could commit visibility after transition start, so it won't clear the policy visibility flag on starting window immediately. But for shell transition, there will call commit visibility immediately after setVisibility, which let the starting window be hidden with policy visibility flag. To make the condition more generic, also check firstWindowDrawn or allDrawn before clear the flag. Bug: 199363064 Test: No change when using app transition. Test: Enable shell transition, check the starting window is really visible on SF layer when launch app. Change-Id: I93a9f23c8d686c7bd176ae2806c28675562efc53 --- services/core/java/com/android/server/wm/ActivityRecord.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 168686c04d367..af794c1617943 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -4935,7 +4935,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } else { // If we are being set visible, and the starting window is not yet displayed, // then make sure it doesn't get displayed. - if (mStartingWindow != null && !mStartingWindow.isDrawn()) { + if (mStartingWindow != null && !mStartingWindow.isDrawn() + && (firstWindowDrawn || allDrawn)) { mStartingWindow.clearPolicyVisibilityFlag(LEGACY_POLICY_VISIBILITY); mStartingWindow.mLegacyPolicyVisibilityAfterAnim = false; }