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

Commit 5aa84217 authored by Shawn Lee's avatar Shawn Lee
Browse files

Prevent Keyguard quick affordance from stealing touch while in QS

Sets quick affordance buttons to visibility gone while in QS/QQS

Bug: 267465887
Test: manual by tapping QS footer buttons after swipe down from middle and top of keyguard
Change-Id: I43d02a88ab14237374818fc0a9baa6314a85e561
parent 12cc569e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -142,6 +142,8 @@ constructor(
    val alternateBouncerShowing: Flow<Boolean> = bouncerRepository.alternateBouncerVisible
    /** Observable for the [StatusBarState] */
    val statusBarState: Flow<StatusBarState> = repository.statusBarState
    /** Whether or not quick settings or quick quick settings are showing. */
    val isQuickSettingsVisible: Flow<Boolean> = repository.isQuickSettingsVisible
    /**
     * Observable for [BiometricUnlockModel] when biometrics like face or any fingerprint (rear,
     * side, under display) is used to unlock the device.
+3 −2
Original line number Diff line number Diff line
@@ -93,8 +93,9 @@ constructor(
            quickAffordanceAlwaysVisible(position),
            keyguardInteractor.isDozing,
            keyguardInteractor.isKeyguardShowing,
        ) { affordance, isDozing, isKeyguardShowing ->
            if (!isDozing && isKeyguardShowing) {
            keyguardInteractor.isQuickSettingsVisible
        ) { affordance, isDozing, isKeyguardShowing, isQuickSettingsVisible ->
            if (!isDozing && isKeyguardShowing && !isQuickSettingsVisible) {
                affordance
            } else {
                KeyguardQuickAffordanceModel.Hidden
+18 −0
Original line number Diff line number Diff line
@@ -280,6 +280,24 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
            assertThat(collectedValue).isInstanceOf(KeyguardQuickAffordanceModel.Hidden::class.java)
        }

    @Test
    fun `quickAffordance - hidden when quick settings is visible`() =
        testScope.runTest {
            repository.setQuickSettingsVisible(true)
            quickAccessWallet.setState(
                KeyguardQuickAffordanceConfig.LockScreenState.Visible(
                    icon = ICON,
                )
            )

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

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

    @Test
    fun `quickAffordance - bottom start affordance hidden while dozing`() =
        testScope.runTest {