Capture screenshots from all displays (flag-guarded)
This changes TakeScreenshotService to gather screenshots from all
(not-virtual) connected displays when a SystemUI flag is enabled.
System server part of the screenshot flow is unchanged.
When the `multi_display_screenshot` sysui flag is enabled, one
screenshot is captured for each display, and the UI is shown accordingly
in every display. This results in different files being saved.
When the flag is disabled, the previous behaviour is left unchanged.
ScreenshotController has been been slighly refactored to be per-display.
When the flag is disabled, only the controller for the default display
is created.
There is some minimal duplication of code related to UiEventLogger that
can be removed when the flag is enabled.
Test: TakeScreenshotServiceTest, TakeScreenshotExecutorTest, ConnectedDisplayInteractorTest, ScreenshotDataTest
Bug: 290910794
Bug: 295143676
Change-Id: I24bd6436d346c2cbd5dcdc201d01c8aabb09bc17
9 files changed