[2/n] Introduce dynamic bounds calculation to prevent letterboxing
When entering desktop windowing, applications should no longer be
letterboxed. This means scaling down apps in SCM for all unresizable
apps so intial bounds match scale of the fullscreen bounds. This removes
letterboxing while ensuring the apps layout is not disrupted.
For portrait resizable apps when the device is in landscape, the height
of the initial bounds will match the desired app height for desktopmode
while the width will remain from the apps fullscreen width.
For landscape resizable apps when the device is portrait, the fullscreen
height of the app will be preserved while the width will be set to a
custom value.
Flag: com.android.window.flags.enable_windowing_dynamic_initial_bounds
Bug: 319820230
Bug: 324378380
Fixes: 335401172
Fixes: 346821376
Test: atest WmTests:DesktopModeLaunchParamsModifierTests
Test: atest WmTests:DesktopModeUtilsTests
Test: atest WmTests:DisplayContentTests
Test: atest WMShellUnitTests:DesktopTasksControllerTest
Change-Id: Ie111c025256de9afdd9d2568a28a5078413fcbfe
8 files changed