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

Commit c0a4a1b0 authored by Beverly Tai's avatar Beverly Tai Committed by Android (Google) Code Review
Browse files

Merge "Don't show the keyguard on fold if the device isn't provisioned" into main

parents 22463874 b1c191f4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2184,6 +2184,10 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
     */
    public void showDismissibleKeyguard() {
        if (mFoldGracePeriodProvider.isEnabled()) {
            if (!mUpdateMonitor.isDeviceProvisioned()) {
                Log.d(TAG, "Device not provisioned, so ignore request to show keyguard.");
                return;
            }
            Bundle showKeyguardUnlocked = new Bundle();
            showKeyguardUnlocked.putBoolean(OPTION_SHOW_DISMISSIBLE, true);
            showKeyguard(showKeyguardUnlocked);
+29 −0
Original line number Diff line number Diff line
@@ -357,6 +357,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
                mock(FoldGracePeriodProvider.class);
        mViewMediator.mFoldGracePeriodProvider = mockedFoldGracePeriodProvider;
        when(mockedFoldGracePeriodProvider.isEnabled()).thenReturn(true);
        when(mUpdateMonitor.isDeviceProvisioned()).thenReturn(true);

        // GIVEN keyguard is not enabled and isn't showing
        mViewMediator.onSystemReady();
@@ -373,6 +374,33 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
        assertTrue(mViewMediator.isShowingAndNotOccluded());
    }

    @Test
    @TestableLooper.RunWithLooper(setAsMainLooper = true)
    public void doNotShowKeyguard_deviceNotProvisioned() {
        // GIVEN feature is enabled
        final FoldGracePeriodProvider mockedFoldGracePeriodProvider =
                mock(FoldGracePeriodProvider.class);
        mViewMediator.mFoldGracePeriodProvider = mockedFoldGracePeriodProvider;
        when(mockedFoldGracePeriodProvider.isEnabled()).thenReturn(true);

        // GIVEN keyguard is not enabled and isn't showing
        mViewMediator.onSystemReady();
        mViewMediator.setKeyguardEnabled(false);
        TestableLooper.get(this).processAllMessages();
        captureKeyguardUpdateMonitorCallback();
        assertFalse(mViewMediator.isShowingAndNotOccluded());

        // WHEN device is NOT provisioned
        when(mUpdateMonitor.isDeviceProvisioned()).thenReturn(false);

        // WHEN showKeyguard is requested
        mViewMediator.showDismissibleKeyguard();

        // THEN keyguard is NOT shown
        TestableLooper.get(this).processAllMessages();
        assertFalse(mViewMediator.isShowingAndNotOccluded());
    }

    @Test
    @TestableLooper.RunWithLooper(setAsMainLooper = true)
    public void showKeyguardAfterKeyguardNotEnabled_featureNotEnabled() {
@@ -381,6 +409,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
                mock(FoldGracePeriodProvider.class);
        mViewMediator.mFoldGracePeriodProvider = mockedFoldGracePeriodProvider;
        when(mockedFoldGracePeriodProvider.isEnabled()).thenReturn(false);
        when(mUpdateMonitor.isDeviceProvisioned()).thenReturn(true);

        // GIVEN keyguard is not enabled and isn't showing
        mViewMediator.onSystemReady();