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
4 files changed