Fix hotseat visibility after dragging task to bubble
Desktop drag handler sends a transition at the beginning to transiently launch home task. This transition is ignored by the home transition observer and we do not update home visibility in this case. As this would otherwise cause flickers with launcher UI elements during drag. When the desktop drag ends in a bubble drag zone, we send a new transition to convert the task to a bubble. If the task was the only task running on home, we now will have home showing and the bubbled task showing. But since home was made visible by the drag start transition, home task is not part of the second transition changes. It is already considered visible. This broke the existing logic with handling home visibility as we were expecting the second transition to include information about the home task. As a fix, keep track of the desired home visibility state when desktop drag starts. And if the subsequent transition to convert the task to bubble does not contain information about home, apply the home visibility that was calculated at the start of drag. If the convert to bubble transition does include home task and it triggers a change to home visibility, apply this instead and discard the home visibility pending update from the start of the drag. This second case is required in case there are two tasks running on top of home. When desktop drag starts, home will be brought to front transiently. And when drag ends with a transition to convert the dragged task to bubble, the transition changes will include a change to move the home task behind the second fullscreen task. We need to honor this case and send an update that home is not visible. Bug: 396475362 Flag: com.android.wm.shell.enable_bubble_to_fullscreen Test: atest HomeTransitionObserver Test: manual, open an app, drag it to a bubble, check that hotseat is shown in launcher Change-Id: I197ac9b96c4312f3da12bdad21b5844b414847c2
Loading
Please register or sign in to comment