Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aad3eaba authored by Bryce Lee's avatar Bryce Lee Committed by Automerger Merge Worker
Browse files

Merge "Update DreamOverlayService to work with Headless System User Mode."...

Merge "Update DreamOverlayService to work with Headless System User Mode." into udc-qpr-dev am: c3ab285d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23527353



Change-Id: If341fda4df571e42a7fcc9f319ab4fa0b54389c9
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 4b6482a3 c3ab285d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -817,7 +817,8 @@
        <service
            android:name=".dreams.DreamOverlayService"
            android:enabled="false"
            android:exported="true" />
            android:exported="true"
            android:singleUser="true" />

        <activity android:name=".keyguard.WorkLockActivity"
                  android:label="@string/accessibility_desc_work_lock"
+1 −0
Original line number Diff line number Diff line
@@ -283,6 +283,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ

        mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        mWindow.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
        mWindow.addPrivateFlags(WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS);
        mWindow.requestFeature(Window.FEATURE_NO_TITLE);
        // Hide all insets when the dream is showing
        mWindow.getDecorView().getWindowInsetsController().hide(WindowInsets.Type.systemBars());
+21 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.systemui.dreams;

import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
@@ -512,4 +514,23 @@ public class DreamOverlayServiceTest extends SysuiTestCase {
        mMainExecutor.runAllReady();
        verify(mDreamOverlayContainerViewController, never()).wakeUp(callback, mMainExecutor);
    }

    @Test
    public void testSystemFlagShowForAllUsersSetOnWindow() throws RemoteException {
        final IDreamOverlayClient client = getClient();

        // Inform the overlay service of dream starting. Do not show dream complications.
        client.startDream(mWindowParams, mDreamOverlayCallback, DREAM_COMPONENT,
                false /*shouldShowComplication*/);
        mMainExecutor.runAllReady();

        final ArgumentCaptor<WindowManager.LayoutParams> 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();
    }
}