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
Loading
Please register or sign in to comment