Skip to content
Commit 014b730b authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Polish navbar while quick switching apps with different orientation

It was no problem in legacy transition because if a window is not
handled by AsyncRotationController (e.g. SecondaryHomeHandle is
shown in the middle of rotation change), WM core can still wait for
it synchronously with the rotation change.

But with shell transition, the transaction of display projection is
applied in shell side (also the global blast sync is not enabled),
so the async window is unable to draw in new rotation with the
rotation transition at the same time. This change mitigates the case
by deferring showing it until the rotation transition is finished.

Also fix another flickering case of navbar when it is attached to app.
By using both AsyncRotationController's ACTION_SEAMLESS with
NavBarFadeAnimationController rather than only fade-animation, the
bar won't disappear a few frames by drawing with new rotation
before the start transaction is applied, i.e. ACTION_SEAMLESS will
unrotate the surface until the transition starts.

Fix: 292192092
Test: atest TransitionTests#testAppTransitionWithRotationChange
Test: Use quickstep gesture to switch from a portrait app to a
       - Non immersive landscape app.
         - The navbar is not flickering at bottom of screen.
       - Immersive landscape app.
         - The secondary-navbar is not flickering at middle of screen.

Change-Id: I25441ed4a89c8fce605afd3093b9106335fbb1cd
parent 558f38ac
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment