From 8d829ef412af7589c9488eaea930d7c48031a977 Mon Sep 17 00:00:00 2001 From: Bryce Lee Date: Mon, 22 May 2023 13:56:44 -0700 Subject: [PATCH] Update DreamOverlayService to work with Headless System User Mode. The DreamOverlayService must run as part of the system user SystemUI instance as the user-specific instance only has secondary components enabled. As a result, the added overlay window must be set to show for all users. Test: atest DreamOverlayServiceTest#testSystemFlagShowForAllUsersSetOnWindow Test: manual - verified overlay appears when dream shown in HSUM Fixes: 283486171 Change-Id: I14d3335cb0d2a78780258300737f5d0dbe8d97e1 --- packages/SystemUI/AndroidManifest.xml | 3 ++- .../systemui/dreams/DreamOverlayService.java | 1 + .../dreams/DreamOverlayServiceTest.java | 21 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 476c820a79a78..b7b86ef18299a 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -817,7 +817,8 @@ + android:exported="true" + android:singleUser="true" /> paramsCaptor = + ArgumentCaptor.forClass(WindowManager.LayoutParams.class); + + // Verify that a new window is added. + verify(mWindowManager).addView(any(), paramsCaptor.capture()); + + assertThat((paramsCaptor.getValue().privateFlags & SYSTEM_FLAG_SHOW_FOR_ALL_USERS) + == SYSTEM_FLAG_SHOW_FOR_ALL_USERS).isTrue(); + } }