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

Commit ff6e8481 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "PulsingGestureListen only checks taps when pulsing" into tm-qpr-dev

parents e00464ef aaaba205
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.Dumpable
import com.android.systemui.dock.DockManager
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.statusbar.phone.CentralSurfaces
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent
import com.android.systemui.tuner.TunerService
@@ -49,6 +50,7 @@ class PulsingGestureListener @Inject constructor(
        private val dockManager: DockManager,
        private val centralSurfaces: CentralSurfaces,
        private val ambientDisplayConfiguration: AmbientDisplayConfiguration,
        private val statusBarStateController: StatusBarStateController,
        tunerService: TunerService,
        dumpManager: DumpManager
) : GestureDetector.SimpleOnGestureListener(), Dumpable {
@@ -74,7 +76,8 @@ class PulsingGestureListener @Inject constructor(
    }

    override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
        if (singleTapEnabled &&
        if (statusBarStateController.isPulsing &&
                singleTapEnabled &&
                !dockManager.isDocked &&
                !falsingManager.isProximityNear &&
                !falsingManager.isFalseTap(FalsingManager.MODERATE_PENALTY)
@@ -89,7 +92,8 @@ class PulsingGestureListener @Inject constructor(
    }

    override fun onDoubleTap(e: MotionEvent): Boolean {
        if ((doubleTapEnabled || singleTapEnabled) &&
        if (statusBarStateController.isPulsing &&
                (doubleTapEnabled || singleTapEnabled) &&
                !falsingManager.isProximityNear &&
                !falsingManager.isFalseDoubleTap
        ) {
+30 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.dock.DockManager
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.statusbar.phone.CentralSurfaces
import com.android.systemui.tuner.TunerService
import com.android.systemui.tuner.TunerService.Tunable
@@ -63,6 +64,8 @@ class PulsingGestureListenerTest : SysuiTestCase() {
    private lateinit var tunerService: TunerService
    @Mock
    private lateinit var dumpManager: DumpManager
    @Mock
    private lateinit var statusBarStateController: StatusBarStateController

    private lateinit var tunableCaptor: ArgumentCaptor<Tunable>
    private lateinit var underTest: PulsingGestureListener
@@ -77,6 +80,7 @@ class PulsingGestureListenerTest : SysuiTestCase() {
                dockManager,
                centralSurfaces,
                ambientDisplayConfiguration,
                statusBarStateController,
                tunerService,
                dumpManager
        )
@@ -85,6 +89,8 @@ class PulsingGestureListenerTest : SysuiTestCase() {

    @Test
    fun testGestureDetector_singleTapEnabled() {
        whenever(statusBarStateController.isPulsing).thenReturn(true)

        // GIVEN tap is enabled, prox not covered
        whenever(ambientDisplayConfiguration.tapGestureEnabled(anyInt())).thenReturn(true)
        updateSettings()
@@ -102,6 +108,8 @@ class PulsingGestureListenerTest : SysuiTestCase() {

    @Test
    fun testGestureDetector_doubleTapEnabled() {
        whenever(statusBarStateController.isPulsing).thenReturn(true)

        // GIVEN double tap is enabled, prox not covered
        whenever(ambientDisplayConfiguration.doubleTapGestureEnabled(anyInt())).thenReturn(true)
        updateSettings()
@@ -119,6 +127,8 @@ class PulsingGestureListenerTest : SysuiTestCase() {

    @Test
    fun testGestureDetector_singleTapEnabled_falsing() {
        whenever(statusBarStateController.isPulsing).thenReturn(true)

        // GIVEN tap is enabled, prox not covered
        whenever(ambientDisplayConfiguration.tapGestureEnabled(anyInt())).thenReturn(true)
        updateSettings()
@@ -134,8 +144,24 @@ class PulsingGestureListenerTest : SysuiTestCase() {
        verify(centralSurfaces, never()).wakeUpIfDozing(anyLong(), anyObject(), anyString())
    }

    @Test
    fun testGestureDetector_notPulsing_noFalsingCheck() {
        whenever(statusBarStateController.isPulsing).thenReturn(false)

        // GIVEN tap is enabled, prox not covered
        whenever(ambientDisplayConfiguration.tapGestureEnabled(anyInt())).thenReturn(true)
        // WHEN there's a tap
        underTest.onSingleTapConfirmed(downEv)

        // THEN the falsing manager never gets a call (because the device wasn't pulsing
        // during the tap)
        verify(falsingManager, never()).isFalseTap(anyInt())
    }

    @Test
    fun testGestureDetector_doubleTapEnabled_falsing() {
        whenever(statusBarStateController.isPulsing).thenReturn(true)

        // GIVEN double tap is enabled, prox not covered
        whenever(ambientDisplayConfiguration.doubleTapGestureEnabled(anyInt())).thenReturn(true)
        updateSettings()
@@ -153,6 +179,8 @@ class PulsingGestureListenerTest : SysuiTestCase() {

    @Test
    fun testGestureDetector_singleTapEnabled_proxCovered() {
        whenever(statusBarStateController.isPulsing).thenReturn(true)

        // GIVEN tap is enabled, not a false tap based on classifiers
        whenever(ambientDisplayConfiguration.tapGestureEnabled(anyInt())).thenReturn(true)
        updateSettings()
@@ -170,6 +198,8 @@ class PulsingGestureListenerTest : SysuiTestCase() {

    @Test
    fun testGestureDetector_doubleTapEnabled_proxCovered() {
        whenever(statusBarStateController.isPulsing).thenReturn(true)

        // GIVEN double tap is enabled, not a false tap based on classifiers
        whenever(ambientDisplayConfiguration.doubleTapGestureEnabled(anyInt())).thenReturn(true)
        updateSettings()