Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
parent 75b941e6
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