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

Commit 5597347b authored by Beverly Tai's avatar Beverly Tai
Browse files

Revert "Support KeyEvent.KEYCODE_ENTER on the keyguard"

This reverts commit 5919cb74.

Reason for revert: b/296671124
Fixes: 296671124
Bug: 270883077

Change-Id: If083ce507305740755a4677157450e8497c10455
parent 5919cb74
Loading
Loading
Loading
Loading
+7 −17
Original line number Diff line number Diff line
@@ -54,11 +54,7 @@ constructor(
        if (event.handleAction()) {
            when (event.keyCode) {
                KeyEvent.KEYCODE_MENU -> return dispatchMenuKeyEvent()
                KeyEvent.KEYCODE_SPACE,
                KeyEvent.KEYCODE_ENTER ->
                    if (isDeviceInteractive()) {
                        return collapseShadeLockedOrShowPrimaryBouncer()
                    }
                KeyEvent.KEYCODE_SPACE -> return dispatchSpaceEvent()
            }
        }
        return false
@@ -94,23 +90,17 @@ constructor(
                (statusBarStateController.state != StatusBarState.SHADE) &&
                statusBarKeyguardViewManager.shouldDismissOnMenuPressed()
        if (shouldUnlockOnMenuPressed) {
            return collapseShadeLockedOrShowPrimaryBouncer()
            shadeController.animateCollapseShadeForced()
            return true
        }
        return false
    }

    private fun collapseShadeLockedOrShowPrimaryBouncer(): Boolean {
        when (statusBarStateController.state) {
            StatusBarState.SHADE -> return false
            StatusBarState.SHADE_LOCKED -> {
    private fun dispatchSpaceEvent(): Boolean {
        if (isDeviceInteractive() && statusBarStateController.state != StatusBarState.SHADE) {
            shadeController.animateCollapseShadeForced()
            return true
        }
            StatusBarState.KEYGUARD -> {
                statusBarKeyguardViewManager.showPrimaryBouncer(true)
                return true
            }
        }
        return false
    }

+26 −68
Original line number Diff line number Diff line
@@ -131,12 +131,14 @@ class KeyguardKeyEventInteractorTest : SysuiTestCase() {
    }

    @Test
    fun dispatchKeyEvent_menuActionUp_interactiveKeyguard_showsPrimaryBouncer() {
    fun dispatchKeyEvent_menuActionUp_interactiveKeyguard_collapsesShade() {
        keyguardInteractorWithDependencies.repository.setWakefulnessModel(awakeWakefulnessMode)
        whenever(statusBarStateController.state).thenReturn(StatusBarState.KEYGUARD)
        whenever(statusBarKeyguardViewManager.shouldDismissOnMenuPressed()).thenReturn(true)

        verifyActionUpShowsPrimaryBouncer(KeyEvent.KEYCODE_MENU)
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isTrue()
        verify(shadeController).animateCollapseShadeForced()
    }

    @Test
@@ -145,48 +147,42 @@ class KeyguardKeyEventInteractorTest : SysuiTestCase() {
        whenever(statusBarStateController.state).thenReturn(StatusBarState.SHADE_LOCKED)
        whenever(statusBarKeyguardViewManager.shouldDismissOnMenuPressed()).thenReturn(true)

        verifyActionUpCollapsesTheShade(KeyEvent.KEYCODE_MENU)
        // action down: does NOT collapse the shade
        val actionDownMenuKeyEvent = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MENU)
        assertThat(underTest.dispatchKeyEvent(actionDownMenuKeyEvent)).isFalse()
        verify(shadeController, never()).animateCollapseShadeForced()

        // action up: collapses the shade
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isTrue()
        verify(shadeController).animateCollapseShadeForced()
    }

    @Test
    fun dispatchKeyEvent_menuActionUp_nonInteractiveKeyguard_doNothing() {
    fun dispatchKeyEvent_menuActionUp_nonInteractiveKeyguard_neverCollapsesShade() {
        keyguardInteractorWithDependencies.repository.setWakefulnessModel(asleepWakefulnessMode)
        whenever(statusBarStateController.state).thenReturn(StatusBarState.KEYGUARD)
        whenever(statusBarKeyguardViewManager.shouldDismissOnMenuPressed()).thenReturn(true)

        verifyActionsDoNothing(KeyEvent.KEYCODE_MENU)
    }

    @Test
    fun dispatchKeyEvent_spaceActionUp_interactiveKeyguard_showsPrimaryBouncer() {
        keyguardInteractorWithDependencies.repository.setWakefulnessModel(awakeWakefulnessMode)
        whenever(statusBarStateController.state).thenReturn(StatusBarState.KEYGUARD)

        verifyActionUpShowsPrimaryBouncer(KeyEvent.KEYCODE_SPACE)
    }

    @Test
    fun dispatchKeyEvent_spaceActionUp_shadeLocked_collapsesShade() {
        keyguardInteractorWithDependencies.repository.setWakefulnessModel(awakeWakefulnessMode)
        whenever(statusBarStateController.state).thenReturn(StatusBarState.SHADE_LOCKED)

        verifyActionUpCollapsesTheShade(KeyEvent.KEYCODE_SPACE)
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isFalse()
        verify(shadeController, never()).animateCollapseShadeForced()
    }

    @Test
    fun dispatchKeyEvent_enterActionUp_interactiveKeyguard_showsPrimaryBouncer() {
    fun dispatchKeyEvent_spaceActionUp_interactiveKeyguard_collapsesShade() {
        keyguardInteractorWithDependencies.repository.setWakefulnessModel(awakeWakefulnessMode)
        whenever(statusBarStateController.state).thenReturn(StatusBarState.KEYGUARD)

        verifyActionUpShowsPrimaryBouncer(KeyEvent.KEYCODE_ENTER)
    }

    @Test
    fun dispatchKeyEvent_enterActionUp_shadeLocked_collapsesShade() {
        keyguardInteractorWithDependencies.repository.setWakefulnessModel(awakeWakefulnessMode)
        whenever(statusBarStateController.state).thenReturn(StatusBarState.SHADE_LOCKED)
        // action down: does NOT collapse the shade
        val actionDownMenuKeyEvent = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SPACE)
        assertThat(underTest.dispatchKeyEvent(actionDownMenuKeyEvent)).isFalse()
        verify(shadeController, never()).animateCollapseShadeForced()

        verifyActionUpCollapsesTheShade(KeyEvent.KEYCODE_ENTER)
        // action up: collapses the shade
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SPACE)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isTrue()
        verify(shadeController).animateCollapseShadeForced()
    }

    @Test
@@ -256,42 +252,4 @@ class KeyguardKeyEventInteractorTest : SysuiTestCase() {
            .isFalse()
        verify(statusBarKeyguardViewManager, never()).interceptMediaKey(any())
    }

    private fun verifyActionUpCollapsesTheShade(keycode: Int) {
        // action down: does NOT collapse the shade
        val actionDownMenuKeyEvent = KeyEvent(KeyEvent.ACTION_DOWN, keycode)
        assertThat(underTest.dispatchKeyEvent(actionDownMenuKeyEvent)).isFalse()
        verify(shadeController, never()).animateCollapseShadeForced()

        // action up: collapses the shade
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, keycode)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isTrue()
        verify(shadeController).animateCollapseShadeForced()
    }

    private fun verifyActionUpShowsPrimaryBouncer(keycode: Int) {
        // action down: does NOT collapse the shade
        val actionDownMenuKeyEvent = KeyEvent(KeyEvent.ACTION_DOWN, keycode)
        assertThat(underTest.dispatchKeyEvent(actionDownMenuKeyEvent)).isFalse()
        verify(statusBarKeyguardViewManager, never()).showPrimaryBouncer(any())

        // action up: collapses the shade
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, keycode)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isTrue()
        verify(statusBarKeyguardViewManager).showPrimaryBouncer(eq(true))
    }

    private fun verifyActionsDoNothing(keycode: Int) {
        // action down: does nothing
        val actionDownMenuKeyEvent = KeyEvent(KeyEvent.ACTION_DOWN, keycode)
        assertThat(underTest.dispatchKeyEvent(actionDownMenuKeyEvent)).isFalse()
        verify(shadeController, never()).animateCollapseShadeForced()
        verify(statusBarKeyguardViewManager, never()).showPrimaryBouncer(any())

        // action up: doesNothing
        val actionUpMenuKeyEvent = KeyEvent(KeyEvent.ACTION_UP, keycode)
        assertThat(underTest.dispatchKeyEvent(actionUpMenuKeyEvent)).isFalse()
        verify(shadeController, never()).animateCollapseShadeForced()
        verify(statusBarKeyguardViewManager, never()).showPrimaryBouncer(any())
    }
}