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

Commit 42222465 authored by Michal Brzezinski's avatar Michal Brzezinski
Browse files

Simplifying TouchpadGestureMonitor interface

Part of introducing gesture live progress tracking.

The main change is in TouchpadGestureMonitor and all remaining changes are just making it compile.
Next CL will rename it to GestureRecognizer.

Bug: 369817369
Test: All tests are passing
Flag: com.android.systemui.shared.new_touchpad_gestures_tutorial
Change-Id: Ia49455ed5b4fe07da1a009e35ff1177d8b40c2dc
parent a70a2f28
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.InProgress
import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NotStarted
import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@@ -34,10 +35,12 @@ class BackGestureMonitorTest : SysuiTestCase() {

    private var gestureState: GestureState = NotStarted
    private val gestureMonitor =
        BackGestureMonitor(
            gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
            gestureStateChangedCallback = { gestureState = it },
        )
        BackGestureMonitor(gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt())

    @Before
    fun before() {
        gestureMonitor.addGestureStateCallback { gestureState = it }
    }

    @Test
    fun triggersGestureFinishedForThreeFingerGestureRight() {
@@ -82,7 +85,7 @@ class BackGestureMonitorTest : SysuiTestCase() {
    }

    private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) {
        events.forEach { gestureMonitor.processTouchpadEvent(it) }
        events.forEach { gestureMonitor.accept(it) }
        assertThat(gestureState).isEqualTo(expectedState)
    }
}
+1 −4
Original line number Diff line number Diff line
@@ -36,10 +36,7 @@ class EasterEggGestureTest : SysuiTestCase() {
    private var triggered = false
    private val handler =
        TouchpadGestureHandler(
            BackGestureMonitor(
                gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
                gestureStateChangedCallback = {},
            ),
            BackGestureMonitor(gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt()),
            EasterEggGestureMonitor(callback = { triggered = true }),
        )

+8 −5
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.InProgress
import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NotStarted
import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@@ -34,10 +35,12 @@ class HomeGestureMonitorTest : SysuiTestCase() {

    private var gestureState: GestureState = GestureState.NotStarted
    private val gestureMonitor =
        HomeGestureMonitor(
            gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
            gestureStateChangedCallback = { gestureState = it },
        )
        HomeGestureMonitor(gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt())

    @Before
    fun before() {
        gestureMonitor.addGestureStateCallback { gestureState = it }
    }

    @Test
    fun triggersGestureFinishedForThreeFingerGestureUp() {
@@ -78,7 +81,7 @@ class HomeGestureMonitorTest : SysuiTestCase() {
    }

    private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) {
        events.forEach { gestureMonitor.processTouchpadEvent(it) }
        events.forEach { gestureMonitor.accept(it) }
        assertThat(gestureState).isEqualTo(expectedState)
    }
}
+7 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.InProgress
import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NotStarted
import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.doReturn
@@ -52,11 +53,15 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() {
    private val gestureMonitor =
        RecentAppsGestureMonitor(
            gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
            gestureStateChangedCallback = { gestureState = it },
            velocityThresholdPxPerMs = THRESHOLD_VELOCITY_PX_PER_MS,
            velocityTracker = VerticalVelocityTracker(velocityTracker1D),
        )

    @Before
    fun before() {
        gestureMonitor.addGestureStateCallback { gestureState = it }
    }

    @Test
    fun triggersGestureFinishedForThreeFingerGestureUp() {
        assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = Finished)
@@ -102,7 +107,7 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() {
    }

    private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) {
        events.forEach { gestureMonitor.processTouchpadEvent(it) }
        events.forEach { gestureMonitor.accept(it) }
        assertThat(gestureState).isEqualTo(expectedState)
    }
}
+9 −8
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@@ -35,14 +36,14 @@ import org.junit.runner.RunWith
class TouchpadGestureHandlerTest : SysuiTestCase() {

    private var gestureState: GestureState = GestureState.NotStarted
    private val handler =
        TouchpadGestureHandler(
            BackGestureMonitor(
                gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
                gestureStateChangedCallback = { gestureState = it },
            ),
            EasterEggGestureMonitor {},
        )
    private val gestureMonitor =
        BackGestureMonitor(gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt())
    private val handler = TouchpadGestureHandler(gestureMonitor, EasterEggGestureMonitor {})

    @Before
    fun before() {
        gestureMonitor.addGestureStateCallback { gestureState = it }
    }

    @Test
    fun handlesEventsFromTouchpad() {
Loading