diff options
| author | 2023-04-17 09:27:10 +0000 | |
|---|---|---|
| committer | 2023-04-17 09:27:10 +0000 | |
| commit | 0a5094e8e2a73c0140f0dcd619fb24cf777dd30c (patch) | |
| tree | e8ad85a7a22b875bf80f5d8b23dc270c7d5cd514 | |
| parent | 0acd2a683c659786209d15bfea87e2d1d0668d63 (diff) | |
| parent | 6fe7b0757a8d1488bb4ad8d27e4f395ea5b1e1fd (diff) | |
Merge "Set client invisible immediately for trampoline with window" into udc-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 7 |
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()) { |