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

Commit b655ad24 authored by Aaron Liu's avatar Aaron Liu Committed by Automerger Merge Worker
Browse files

Merge "Ensure finish lockscreen when usersetup incomplete" into udc-qpr-dev am: f8b2f9be

parents ea68218a f8b2f9be
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.user.domain.interactor.UserInteractor;
@@ -411,6 +412,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
    private final UserInteractor mUserInteractor;
    private final Provider<AuthenticationInteractor> mAuthenticationInteractor;
    private final Provider<JavaAdapter> mJavaAdapter;
    private final DeviceProvisionedController mDeviceProvisionedController;
    @Nullable private Job mSceneTransitionCollectionJob;

    @Inject
@@ -439,6 +441,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
            BouncerMessageInteractor bouncerMessageInteractor,
            Provider<JavaAdapter> javaAdapter,
            UserInteractor userInteractor,
            DeviceProvisionedController deviceProvisionedController,
            FaceAuthAccessibilityDelegate faceAuthAccessibilityDelegate,
            KeyguardTransitionInteractor keyguardTransitionInteractor,
            Provider<AuthenticationInteractor> authenticationInteractor
@@ -473,6 +476,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
        mAuthenticationInteractor = authenticationInteractor;
        mJavaAdapter = javaAdapter;
        mKeyguardTransitionInteractor = keyguardTransitionInteractor;
        mDeviceProvisionedController = deviceProvisionedController;
    }

    @Override
@@ -857,9 +861,11 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
                    // Shortcut for SIM PIN/PUK to go to directly to user's security screen or home
                    SecurityMode securityMode = mSecurityModel.getSecurityMode(targetUserId);
                    boolean isLockscreenDisabled = mLockPatternUtils.isLockScreenDisabled(
                            KeyguardUpdateMonitor.getCurrentUser());
                    if (securityMode == SecurityMode.None || isLockscreenDisabled) {
                        finish = isLockscreenDisabled;
                            KeyguardUpdateMonitor.getCurrentUser())
                            || !mDeviceProvisionedController.isUserSetup(targetUserId);

                    if (securityMode == SecurityMode.None && isLockscreenDisabled) {
                        finish = true;
                        eventSubtype = BOUNCER_DISMISS_SIM;
                        uiEvent = BouncerUiEvent.BOUNCER_DISMISS_SIM;
                    } else {
+28 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import com.android.systemui.scene.shared.model.ObservableTransitionState
import com.android.systemui.scene.shared.model.SceneKey
import com.android.systemui.scene.shared.model.SceneModel
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.DeviceProvisionedController
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.statusbar.policy.UserSwitcherController
import com.android.systemui.user.domain.interactor.UserInteractor
@@ -135,6 +136,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() {
    @Mock private lateinit var audioManager: AudioManager
    @Mock private lateinit var userInteractor: UserInteractor
    @Mock private lateinit var faceAuthAccessibilityDelegate: FaceAuthAccessibilityDelegate
    @Mock private lateinit var deviceProvisionedController: DeviceProvisionedController

    @Captor
    private lateinit var swipeListenerArgumentCaptor:
@@ -184,6 +186,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() {
        whenever(keyguardPasswordView.windowInsetsController).thenReturn(windowInsetsController)
        whenever(keyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(SecurityMode.PIN)
        whenever(keyguardStateController.canDismissLockScreen()).thenReturn(true)
        whenever(deviceProvisionedController.isUserSetup(anyInt())).thenReturn(true)

        featureFlags = FakeFeatureFlags()
        featureFlags.set(Flags.REVAMPED_BOUNCER_MESSAGES, true)
@@ -251,6 +254,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() {
                mock(),
                { JavaAdapter(sceneTestUtils.testScope.backgroundScope) },
                userInteractor,
                deviceProvisionedController,
                faceAuthAccessibilityDelegate,
                keyguardTransitionInteractor,
                { authenticationInteractor },
@@ -507,6 +511,30 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() {
        // THEN the next security method of None will dismiss keyguard.
        verify(viewMediatorCallback, never()).keyguardDone(anyBoolean(), anyInt())
    }
    @Test
    fun showNextSecurityScreenOrFinish_SimPin_Swipe_userNotSetup() {
        // GIVEN the current security method is SimPin
        whenever(keyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(false)
        whenever(keyguardUpdateMonitor.getUserUnlockedWithBiometric(TARGET_USER_ID))
            .thenReturn(false)
        underTest.showSecurityScreen(SecurityMode.SimPin)

        // WHEN a request is made from the SimPin screens to show the next security method
        whenever(keyguardSecurityModel.getSecurityMode(TARGET_USER_ID))
            .thenReturn(SecurityMode.None)
        // WHEN security method is SWIPE
        whenever(lockPatternUtils.isLockScreenDisabled(anyInt())).thenReturn(false)
        whenever(deviceProvisionedController.isUserSetup(anyInt())).thenReturn(false)
        underTest.showNextSecurityScreenOrFinish(
            /* authenticated= */ true,
            TARGET_USER_ID,
            /* bypassSecondaryLockScreen= */ true,
            SecurityMode.SimPin
        )

        // THEN the next security method of None will dismiss keyguard.
        verify(viewMediatorCallback).keyguardDone(anyBoolean(), anyInt())
    }

    @Test
    fun onSwipeUp_whenFaceDetectionIsNotRunning_initiatesFaceAuth() {