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

Commit 17b8a48f authored by Brad Hinegardner's avatar Brad Hinegardner Committed by Android (Google) Code Review
Browse files

Merge "Disable lockscreen shortcuts when the user enters lockdown mode" into udc-qpr-dev

parents 0e5f622c a6c3630d
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.systemui.dock.retrieveIsDocked
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.flags.Flags
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig
import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel
import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceRegistry
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceRegistry
@@ -77,6 +78,7 @@ constructor(
    private val logger: KeyguardQuickAffordancesMetricsLogger,
    private val logger: KeyguardQuickAffordancesMetricsLogger,
    private val devicePolicyManager: DevicePolicyManager,
    private val devicePolicyManager: DevicePolicyManager,
    private val dockManager: DockManager,
    private val dockManager: DockManager,
    private val biometricSettingsRepository: BiometricSettingsRepository,
    @Background private val backgroundDispatcher: CoroutineDispatcher,
    @Background private val backgroundDispatcher: CoroutineDispatcher,
    @Application private val appContext: Context,
    @Application private val appContext: Context,
) {
) {
@@ -107,9 +109,10 @@ constructor(
            quickAffordanceAlwaysVisible(position),
            quickAffordanceAlwaysVisible(position),
            keyguardInteractor.isDozing,
            keyguardInteractor.isDozing,
            keyguardInteractor.isKeyguardShowing,
            keyguardInteractor.isKeyguardShowing,
            keyguardInteractor.isQuickSettingsVisible
            keyguardInteractor.isQuickSettingsVisible,
        ) { affordance, isDozing, isKeyguardShowing, isQuickSettingsVisible ->
            biometricSettingsRepository.isCurrentUserInLockdown,
            if (!isDozing && isKeyguardShowing && !isQuickSettingsVisible) {
        ) { affordance, isDozing, isKeyguardShowing, isQuickSettingsVisible, isUserInLockdown ->
            if (!isDozing && isKeyguardShowing && !isQuickSettingsVisible && !isUserInLockdown) {
                affordance
                affordance
            } else {
            } else {
                KeyguardQuickAffordanceModel.Hidden
                KeyguardQuickAffordanceModel.Hidden
+4 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.systemui.keyguard.data.quickaffordance.FakeKeyguardQuickAffor
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
@@ -99,6 +100,7 @@ class CustomizationProviderTest : SysuiTestCase() {
    @Mock private lateinit var logger: KeyguardQuickAffordancesMetricsLogger
    @Mock private lateinit var logger: KeyguardQuickAffordancesMetricsLogger


    private lateinit var dockManager: DockManagerFake
    private lateinit var dockManager: DockManagerFake
    private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository


    private lateinit var underTest: CustomizationProvider
    private lateinit var underTest: CustomizationProvider
    private lateinit var testScope: TestScope
    private lateinit var testScope: TestScope
@@ -112,6 +114,7 @@ class CustomizationProviderTest : SysuiTestCase() {
        whenever(backgroundHandler.looper).thenReturn(TestableLooper.get(this).looper)
        whenever(backgroundHandler.looper).thenReturn(TestableLooper.get(this).looper)


        dockManager = DockManagerFake()
        dockManager = DockManagerFake()
        biometricSettingsRepository = FakeBiometricSettingsRepository()


        underTest = CustomizationProvider()
        underTest = CustomizationProvider()
        val testDispatcher = UnconfinedTestDispatcher()
        val testDispatcher = UnconfinedTestDispatcher()
@@ -199,6 +202,7 @@ class CustomizationProviderTest : SysuiTestCase() {
                logger = logger,
                logger = logger,
                devicePolicyManager = devicePolicyManager,
                devicePolicyManager = devicePolicyManager,
                dockManager = dockManager,
                dockManager = dockManager,
                biometricSettingsRepository = biometricSettingsRepository,
                backgroundDispatcher = testDispatcher,
                backgroundDispatcher = testDispatcher,
                appContext = mContext,
                appContext = mContext,
            )
            )
+4 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanc
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.domain.quickaffordance.FakeKeyguardQuickAffordanceRegistry
import com.android.systemui.keyguard.domain.quickaffordance.FakeKeyguardQuickAffordanceRegistry
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition
import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition
@@ -235,6 +236,7 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() {
    @JvmField @Parameter(4) var startActivity: Boolean = false
    @JvmField @Parameter(4) var startActivity: Boolean = false
    private lateinit var homeControls: FakeKeyguardQuickAffordanceConfig
    private lateinit var homeControls: FakeKeyguardQuickAffordanceConfig
    private lateinit var dockManager: DockManagerFake
    private lateinit var dockManager: DockManagerFake
    private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository
    private lateinit var userTracker: UserTracker
    private lateinit var userTracker: UserTracker


    @Before
    @Before
@@ -246,6 +248,7 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() {
        homeControls =
        homeControls =
            FakeKeyguardQuickAffordanceConfig(BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS)
            FakeKeyguardQuickAffordanceConfig(BuiltInKeyguardQuickAffordanceKeys.HOME_CONTROLS)
        dockManager = DockManagerFake()
        dockManager = DockManagerFake()
        biometricSettingsRepository = FakeBiometricSettingsRepository()
        val quickAccessWallet =
        val quickAccessWallet =
            FakeKeyguardQuickAffordanceConfig(
            FakeKeyguardQuickAffordanceConfig(
                BuiltInKeyguardQuickAffordanceKeys.QUICK_ACCESS_WALLET
                BuiltInKeyguardQuickAffordanceKeys.QUICK_ACCESS_WALLET
@@ -333,6 +336,7 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() {
                logger = logger,
                logger = logger,
                devicePolicyManager = devicePolicyManager,
                devicePolicyManager = devicePolicyManager,
                dockManager = dockManager,
                dockManager = dockManager,
                biometricSettingsRepository = biometricSettingsRepository,
                backgroundDispatcher = testDispatcher,
                backgroundDispatcher = testDispatcher,
                appContext = mContext,
                appContext = mContext,
            )
            )
+22 −0
Original line number Original line Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanc
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel
import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel
@@ -94,6 +95,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
    private lateinit var qrCodeScanner: FakeKeyguardQuickAffordanceConfig
    private lateinit var qrCodeScanner: FakeKeyguardQuickAffordanceConfig
    private lateinit var featureFlags: FakeFeatureFlags
    private lateinit var featureFlags: FakeFeatureFlags
    private lateinit var dockManager: DockManagerFake
    private lateinit var dockManager: DockManagerFake
    private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository


    @Before
    @Before
    fun setUp() {
    fun setUp() {
@@ -116,6 +118,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
        testScope = TestScope(testDispatcher)
        testScope = TestScope(testDispatcher)


        dockManager = DockManagerFake()
        dockManager = DockManagerFake()
        biometricSettingsRepository = FakeBiometricSettingsRepository()


        val localUserSelectionManager =
        val localUserSelectionManager =
            KeyguardQuickAffordanceLocalUserSelectionManager(
            KeyguardQuickAffordanceLocalUserSelectionManager(
@@ -197,6 +200,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
                logger = logger,
                logger = logger,
                devicePolicyManager = devicePolicyManager,
                devicePolicyManager = devicePolicyManager,
                dockManager = dockManager,
                dockManager = dockManager,
                biometricSettingsRepository = biometricSettingsRepository,
                backgroundDispatcher = testDispatcher,
                backgroundDispatcher = testDispatcher,
                appContext = context,
                appContext = context,
            )
            )
@@ -309,6 +313,24 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
            assertThat(collectedValue()).isEqualTo(KeyguardQuickAffordanceModel.Hidden)
            assertThat(collectedValue()).isEqualTo(KeyguardQuickAffordanceModel.Hidden)
        }
        }


    @Test
    fun quickAffordance_hiddenWhenUserIsInLockdownMode() =
        testScope.runTest {
            biometricSettingsRepository.setIsUserInLockdown(true)
            quickAccessWallet.setState(
                KeyguardQuickAffordanceConfig.LockScreenState.Visible(
                    icon = ICON,
                )
            )

            val collectedValue by
                collectLastValue(
                    underTest.quickAffordance(KeyguardQuickAffordancePosition.BOTTOM_END)
                )

            assertThat(collectedValue).isEqualTo(KeyguardQuickAffordanceModel.Hidden)
        }

    @Test
    @Test
    fun quickAffordance_bottomStartAffordanceHiddenWhileDozing() =
    fun quickAffordance_bottomStartAffordanceHiddenWhileDozing() =
        testScope.runTest {
        testScope.runTest {
+4 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanc
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLegacySettingSyncer
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceLocalUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager
import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository
import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
import com.android.systemui.keyguard.data.repository.KeyguardQuickAffordanceRepository
@@ -107,6 +108,7 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() {
    private lateinit var quickAccessWalletAffordanceConfig: FakeKeyguardQuickAffordanceConfig
    private lateinit var quickAccessWalletAffordanceConfig: FakeKeyguardQuickAffordanceConfig
    private lateinit var qrCodeScannerAffordanceConfig: FakeKeyguardQuickAffordanceConfig
    private lateinit var qrCodeScannerAffordanceConfig: FakeKeyguardQuickAffordanceConfig
    private lateinit var dockManager: DockManagerFake
    private lateinit var dockManager: DockManagerFake
    private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository


    @Before
    @Before
    fun setUp() {
    fun setUp() {
@@ -123,6 +125,7 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() {
        qrCodeScannerAffordanceConfig =
        qrCodeScannerAffordanceConfig =
            FakeKeyguardQuickAffordanceConfig(BuiltInKeyguardQuickAffordanceKeys.QR_CODE_SCANNER)
            FakeKeyguardQuickAffordanceConfig(BuiltInKeyguardQuickAffordanceKeys.QR_CODE_SCANNER)
        dockManager = DockManagerFake()
        dockManager = DockManagerFake()
        biometricSettingsRepository = FakeBiometricSettingsRepository()
        registry =
        registry =
            FakeKeyguardQuickAffordanceRegistry(
            FakeKeyguardQuickAffordanceRegistry(
                mapOf(
                mapOf(
@@ -233,6 +236,7 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() {
                        logger = logger,
                        logger = logger,
                        devicePolicyManager = devicePolicyManager,
                        devicePolicyManager = devicePolicyManager,
                        dockManager = dockManager,
                        dockManager = dockManager,
                        biometricSettingsRepository = biometricSettingsRepository,
                        backgroundDispatcher = testDispatcher,
                        backgroundDispatcher = testDispatcher,
                        appContext = mContext,
                        appContext = mContext,
                    ),
                    ),