summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2023-04-17 09:27:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-17 09:27:10 +0000
commit0a5094e8e2a73c0140f0dcd619fb24cf777dd30c (patch)
treee8ad85a7a22b875bf80f5d8b23dc270c7d5cd514
parent0acd2a683c659786209d15bfea87e2d1d0668d63 (diff)
parent6fe7b0757a8d1488bb4ad8d27e4f395ea5b1e1fd (diff)
Merge "Set client invisible immediately for trampoline with window" into udc-dev
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index f5cb613601fe..2160ce1be729 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -5315,6 +5315,13 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
if (finishing || isState(STOPPED)) {
displayContent.mUnknownAppVisibilityController.appRemovedOrHidden(this);
}
+ // Because starting window was transferred, this activity may be a trampoline which has
+ // been occluded by next activity. If it has added windows, set client visibility
+ // immediately to avoid the client getting RELAYOUT_RES_FIRST_TIME from relayout and
+ // drawing an unnecessary frame.
+ if (startingMoved && !firstWindowDrawn && hasChild()) {
+ setClientVisible(false);
+ }
} else {
if (!appTransition.isTransitionSet()
&& appTransition.isReady()) {