Introduce policy to move the shade window according to the last status bar touch

This policy sets the shade in the same display of the last status bar touch.

When a display is removed, the shade window falls back to the default one.

Note that StatusBarTouchShadeDisplayPolicy has been written to be performant: no useless operations are done unless the policy is the selected one.

To trigger this behaviour, it is necessary to run:
"adb shell cmd statusbar shade_display_override status_bar_latest_touch"

(This only works if the flag is on)

Bug: 362719719
Bug: 380444270
Test: PhoneStatusBarViewControllerTest, StatusBarTouchShadeDisplayPolicyTest
Flag: com.android.systemui.shade_window_goes_around
Change-Id: I25ac6b954f4671a4db30c8620852efd8e437cecf
7 files changed