Avoid creating wallpaper rotation leash if it is not in transition

Because commitVisibleWallpapers is called before calculateTargets,
it doesn't know whether the wallpaper is a transition participant. And
then because getLeashSurface will create the rotation leash directly,
if the wallpaper doesn't have changes, the leash becomes outside the
management of transition. Which could cause wallpaper to show with
unexpected rotation.

This change moves the operation to be after calculateTargets and
calculateTransitionInfo, so it is confirmed that wallpaper is a
transition participant and the rotation leash (if needed) is also
prepared by calculateTransitionInfo.

Bug: 278097747
Bug: 349966512
Flag: com.android.window.flags.ensure_wallpaper_in_transitions
Test: Close any fixed-rotation task into launcher.
Test: "adb shell device_config override windowing_frontend \
  com.android.window.flags.respect_non_top_visible_fixed_orientation \
  true" Reboot. Launch a translucent landscape on portrait home.
  The wallpaper should keep in portrait.
Change-Id: I4b4ae6d76bbe5615f3fde4b497f93584e22850b4
1 file changed