Use sync transaction for dim layer and scale
Otherwise when performing shell rotation animation, the buffer layers are waiting for start transaction but their parent container layers have applied the change in new rotation. Then before the rotation animation starts, those window may be placed at strange position. Also 1. Skip window animation if display is in transition, because it is usually hard to observe while the whole content of display is changing. Sync transaction cannot help this case because it may be like to delay the leash creation and jump to the end of animation if the sync transaction is applied later. The window level animation in this case may happen on an activity with declaring window exit/enter animation and it doesn't handle config change. So the relaunch adds/removes the window that triggers exit/enter. 2. Fix a missing condition of async rotation that screen decorations draw in new rotation before the rotation animation starts. Bug: 225324120 Test: adb shell setprop persist.wm.debug.shell_transit 1; reboot Start a dialog style activity with FLAG_SHOW_WALLPAPER, screenOrientation="fullSensor", and without configChanges (to trigger relaunch). Rotate the device and check no obvious flickering. Change-Id: Ic4239ca7c7e3cd9e6ecae6f4ec7e823104b638de
Loading
Please register or sign in to comment