Loading packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/BackGestureMonitorTest.kt +13 −13 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.view.MotionEvent import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.Finished 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.Test Loading @@ -32,28 +32,28 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class BackGestureMonitorTest : SysuiTestCase() { private var gestureState = NOT_STARTED private var gestureState: GestureState = NotStarted private val gestureMonitor = BackGestureMonitor( gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), gestureStateChangedCallback = { gestureState = it } gestureStateChangedCallback = { gestureState = it }, ) @Test fun triggersGestureFinishedForThreeFingerGestureRight() { assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = Finished) } @Test fun triggersGestureFinishedForThreeFingerGestureLeft() { assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = Finished) } @Test fun triggersGestureProgressForThreeFingerGestureStarted() { assertStateAfterEvents( events = ThreeFingerGesture.startEvents(x = 0f, y = 0f), expectedState = IN_PROGRESS expectedState = InProgress(), ) } Loading @@ -61,24 +61,24 @@ class BackGestureMonitorTest : SysuiTestCase() { fun doesntTriggerGestureFinished_onGestureDistanceTooShort() { assertStateAfterEvents( events = ThreeFingerGesture.swipeLeft(distancePx = SWIPE_DISTANCE / 2), expectedState = NOT_STARTED expectedState = NotStarted, ) } @Test fun doesntTriggerGestureFinished_onThreeFingersSwipeInOtherDirections() { assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onTwoFingersSwipe() { assertStateAfterEvents(events = TwoFingerGesture.swipeRight(), expectedState = NOT_STARTED) assertStateAfterEvents(events = TwoFingerGesture.swipeRight(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onFourFingersSwipe() { assertStateAfterEvents(events = FourFingerGesture.swipeRight(), expectedState = NOT_STARTED) assertStateAfterEvents(events = FourFingerGesture.swipeRight(), expectedState = NotStarted) } private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) { Loading packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/HomeGestureMonitorTest.kt +13 −16 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.view.MotionEvent import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.Finished 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.Test Loading @@ -32,23 +32,23 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class HomeGestureMonitorTest : SysuiTestCase() { private var gestureState = NOT_STARTED private var gestureState: GestureState = GestureState.NotStarted private val gestureMonitor = HomeGestureMonitor( gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), gestureStateChangedCallback = { gestureState = it } gestureStateChangedCallback = { gestureState = it }, ) @Test fun triggersGestureFinishedForThreeFingerGestureUp() { assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = Finished) } @Test fun triggersGestureProgressForThreeFingerGestureStarted() { assertStateAfterEvents( events = ThreeFingerGesture.startEvents(x = 0f, y = 0f), expectedState = IN_PROGRESS expectedState = InProgress(), ) } Loading @@ -56,28 +56,25 @@ class HomeGestureMonitorTest : SysuiTestCase() { fun doesntTriggerGestureFinished_onGestureDistanceTooShort() { assertStateAfterEvents( events = ThreeFingerGesture.swipeUp(distancePx = SWIPE_DISTANCE / 2), expectedState = NOT_STARTED expectedState = NotStarted, ) } @Test fun doesntTriggerGestureFinished_onThreeFingersSwipeInOtherDirections() { assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NOT_STARTED) assertStateAfterEvents( events = ThreeFingerGesture.swipeRight(), expectedState = NOT_STARTED ) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onTwoFingersSwipe() { assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onFourFingersSwipe() { assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NotStarted) } private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) { Loading packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/RecentAppsGestureMonitorTest.kt +14 −17 Original line number Diff line number Diff line Loading @@ -21,9 +21,9 @@ import androidx.compose.ui.input.pointer.util.VelocityTracker1D import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.Finished 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.Test Loading @@ -43,7 +43,7 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() { const val FAST = THRESHOLD_VELOCITY_PX_PER_MS * 1000 + 1 } private var gestureState = NOT_STARTED private var gestureState: GestureState = GestureState.NotStarted private val velocityTracker = mock<VelocityTracker1D> { // by default return correct speed for the gesture - as if pointer is slowing down Loading @@ -54,25 +54,25 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() { gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), gestureStateChangedCallback = { gestureState = it }, velocityThresholdPxPerMs = THRESHOLD_VELOCITY_PX_PER_MS, velocityTracker = velocityTracker velocityTracker = velocityTracker, ) @Test fun triggersGestureFinishedForThreeFingerGestureUp() { assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = Finished) } @Test fun doesntTriggerGestureFinished_onGestureSpeedTooHigh() { whenever(velocityTracker.calculateVelocity()).thenReturn(FAST) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NotStarted) } @Test fun triggersGestureProgressForThreeFingerGestureStarted() { assertStateAfterEvents( events = ThreeFingerGesture.startEvents(x = 0f, y = 0f), expectedState = IN_PROGRESS expectedState = InProgress(), ) } Loading @@ -80,28 +80,25 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() { fun doesntTriggerGestureFinished_onGestureDistanceTooShort() { assertStateAfterEvents( events = ThreeFingerGesture.swipeUp(distancePx = SWIPE_DISTANCE / 2), expectedState = NOT_STARTED expectedState = NotStarted, ) } @Test fun doesntTriggerGestureFinished_onThreeFingersSwipeInOtherDirections() { assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NOT_STARTED) assertStateAfterEvents( events = ThreeFingerGesture.swipeRight(), expectedState = NOT_STARTED ) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onTwoFingersSwipe() { assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onFourFingersSwipe() { assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NotStarted) } private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) { Loading packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt +2 −4 Original line number Diff line number Diff line Loading @@ -25,8 +25,6 @@ import android.view.MotionEvent.TOOL_TYPE_MOUSE import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE import com.google.common.truth.Truth.assertThat import org.junit.Test Loading @@ -36,7 +34,7 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class TouchpadGestureHandlerTest : SysuiTestCase() { private var gestureState = NOT_STARTED private var gestureState: GestureState = GestureState.NotStarted private val handler = TouchpadGestureHandler( BackGestureMonitor( Loading Loading @@ -82,7 +80,7 @@ class TouchpadGestureHandlerTest : SysuiTestCase() { fun triggersGestureDoneForThreeFingerGesture() { backGestureEvents().forEach { handler.onMotionEvent(it) } assertThat(gestureState).isEqualTo(FINISHED) assertThat(gestureState).isEqualTo(GestureState.Finished) } private fun backGestureEvents(): List<MotionEvent> { Loading packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionKeyTutorialScreen.kt +9 −12 Original line number Diff line number Diff line Loading @@ -37,25 +37,22 @@ import androidx.compose.ui.input.key.onKeyEvent import androidx.compose.ui.input.key.type import com.airbnb.lottie.compose.rememberLottieDynamicProperties import com.android.compose.theme.LocalAndroidColorScheme import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.FINISHED import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.NOT_STARTED import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.Finished import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.NotStarted import com.android.systemui.res.R @Composable fun ActionKeyTutorialScreen( onDoneButtonClicked: () -> Unit, onBack: () -> Unit, ) { fun ActionKeyTutorialScreen(onDoneButtonClicked: () -> Unit, onBack: () -> Unit) { BackHandler(onBack = onBack) val screenConfig = buildScreenConfig() var actionState by remember { mutableStateOf(NOT_STARTED) } var actionState: TutorialActionState by remember { mutableStateOf(NotStarted) } val focusRequester = remember { FocusRequester() } Box( modifier = Modifier.fillMaxSize() .onKeyEvent { keyEvent: KeyEvent -> if (keyEvent.key == Key.MetaLeft && keyEvent.type == KeyEventType.KeyUp) { actionState = FINISHED actionState = Finished } true } Loading @@ -81,13 +78,13 @@ private fun buildScreenConfig() = titleResId = R.string.tutorial_action_key_title, bodyResId = R.string.tutorial_action_key_guidance, titleSuccessResId = R.string.tutorial_action_key_success_title, bodySuccessResId = R.string.tutorial_action_key_success_body bodySuccessResId = R.string.tutorial_action_key_success_body, ), animations = TutorialScreenConfig.Animations( educationResId = R.raw.action_key_edu, successResId = R.raw.action_key_success ) successResId = R.raw.action_key_success, ), ) @Composable Loading @@ -101,7 +98,7 @@ private fun rememberScreenColors(): TutorialScreenConfig.Colors { rememberColorFilterProperty(".primaryFixedDim", primaryFixedDim), rememberColorFilterProperty(".secondaryFixedDim", secondaryFixedDim), rememberColorFilterProperty(".onSecondaryFixed", onSecondaryFixed), rememberColorFilterProperty(".onSecondaryFixedVariant", onSecondaryFixedVariant) rememberColorFilterProperty(".onSecondaryFixedVariant", onSecondaryFixedVariant), ) val screenColors = remember(dynamicProperties) { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/BackGestureMonitorTest.kt +13 −13 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.view.MotionEvent import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.Finished 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.Test Loading @@ -32,28 +32,28 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class BackGestureMonitorTest : SysuiTestCase() { private var gestureState = NOT_STARTED private var gestureState: GestureState = NotStarted private val gestureMonitor = BackGestureMonitor( gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), gestureStateChangedCallback = { gestureState = it } gestureStateChangedCallback = { gestureState = it }, ) @Test fun triggersGestureFinishedForThreeFingerGestureRight() { assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = Finished) } @Test fun triggersGestureFinishedForThreeFingerGestureLeft() { assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = Finished) } @Test fun triggersGestureProgressForThreeFingerGestureStarted() { assertStateAfterEvents( events = ThreeFingerGesture.startEvents(x = 0f, y = 0f), expectedState = IN_PROGRESS expectedState = InProgress(), ) } Loading @@ -61,24 +61,24 @@ class BackGestureMonitorTest : SysuiTestCase() { fun doesntTriggerGestureFinished_onGestureDistanceTooShort() { assertStateAfterEvents( events = ThreeFingerGesture.swipeLeft(distancePx = SWIPE_DISTANCE / 2), expectedState = NOT_STARTED expectedState = NotStarted, ) } @Test fun doesntTriggerGestureFinished_onThreeFingersSwipeInOtherDirections() { assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onTwoFingersSwipe() { assertStateAfterEvents(events = TwoFingerGesture.swipeRight(), expectedState = NOT_STARTED) assertStateAfterEvents(events = TwoFingerGesture.swipeRight(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onFourFingersSwipe() { assertStateAfterEvents(events = FourFingerGesture.swipeRight(), expectedState = NOT_STARTED) assertStateAfterEvents(events = FourFingerGesture.swipeRight(), expectedState = NotStarted) } private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) { Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/HomeGestureMonitorTest.kt +13 −16 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.view.MotionEvent import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.Finished 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.Test Loading @@ -32,23 +32,23 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class HomeGestureMonitorTest : SysuiTestCase() { private var gestureState = NOT_STARTED private var gestureState: GestureState = GestureState.NotStarted private val gestureMonitor = HomeGestureMonitor( gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), gestureStateChangedCallback = { gestureState = it } gestureStateChangedCallback = { gestureState = it }, ) @Test fun triggersGestureFinishedForThreeFingerGestureUp() { assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = Finished) } @Test fun triggersGestureProgressForThreeFingerGestureStarted() { assertStateAfterEvents( events = ThreeFingerGesture.startEvents(x = 0f, y = 0f), expectedState = IN_PROGRESS expectedState = InProgress(), ) } Loading @@ -56,28 +56,25 @@ class HomeGestureMonitorTest : SysuiTestCase() { fun doesntTriggerGestureFinished_onGestureDistanceTooShort() { assertStateAfterEvents( events = ThreeFingerGesture.swipeUp(distancePx = SWIPE_DISTANCE / 2), expectedState = NOT_STARTED expectedState = NotStarted, ) } @Test fun doesntTriggerGestureFinished_onThreeFingersSwipeInOtherDirections() { assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NOT_STARTED) assertStateAfterEvents( events = ThreeFingerGesture.swipeRight(), expectedState = NOT_STARTED ) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onTwoFingersSwipe() { assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onFourFingersSwipe() { assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NotStarted) } private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) { Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/RecentAppsGestureMonitorTest.kt +14 −17 Original line number Diff line number Diff line Loading @@ -21,9 +21,9 @@ import androidx.compose.ui.input.pointer.util.VelocityTracker1D import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.Finished 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.Test Loading @@ -43,7 +43,7 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() { const val FAST = THRESHOLD_VELOCITY_PX_PER_MS * 1000 + 1 } private var gestureState = NOT_STARTED private var gestureState: GestureState = GestureState.NotStarted private val velocityTracker = mock<VelocityTracker1D> { // by default return correct speed for the gesture - as if pointer is slowing down Loading @@ -54,25 +54,25 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() { gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), gestureStateChangedCallback = { gestureState = it }, velocityThresholdPxPerMs = THRESHOLD_VELOCITY_PX_PER_MS, velocityTracker = velocityTracker velocityTracker = velocityTracker, ) @Test fun triggersGestureFinishedForThreeFingerGestureUp() { assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = FINISHED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = Finished) } @Test fun doesntTriggerGestureFinished_onGestureSpeedTooHigh() { whenever(velocityTracker.calculateVelocity()).thenReturn(FAST) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeUp(), expectedState = NotStarted) } @Test fun triggersGestureProgressForThreeFingerGestureStarted() { assertStateAfterEvents( events = ThreeFingerGesture.startEvents(x = 0f, y = 0f), expectedState = IN_PROGRESS expectedState = InProgress(), ) } Loading @@ -80,28 +80,25 @@ class RecentAppsGestureMonitorTest : SysuiTestCase() { fun doesntTriggerGestureFinished_onGestureDistanceTooShort() { assertStateAfterEvents( events = ThreeFingerGesture.swipeUp(distancePx = SWIPE_DISTANCE / 2), expectedState = NOT_STARTED expectedState = NotStarted, ) } @Test fun doesntTriggerGestureFinished_onThreeFingersSwipeInOtherDirections() { assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NOT_STARTED) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NOT_STARTED) assertStateAfterEvents( events = ThreeFingerGesture.swipeRight(), expectedState = NOT_STARTED ) assertStateAfterEvents(events = ThreeFingerGesture.swipeDown(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeLeft(), expectedState = NotStarted) assertStateAfterEvents(events = ThreeFingerGesture.swipeRight(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onTwoFingersSwipe() { assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = TwoFingerGesture.swipeUp(), expectedState = NotStarted) } @Test fun doesntTriggerGestureFinished_onFourFingersSwipe() { assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NOT_STARTED) assertStateAfterEvents(events = FourFingerGesture.swipeUp(), expectedState = NotStarted) } private fun assertStateAfterEvents(events: List<MotionEvent>, expectedState: GestureState) { Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt +2 −4 Original line number Diff line number Diff line Loading @@ -25,8 +25,6 @@ import android.view.MotionEvent.TOOL_TYPE_MOUSE import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.NOT_STARTED import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE import com.google.common.truth.Truth.assertThat import org.junit.Test Loading @@ -36,7 +34,7 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class TouchpadGestureHandlerTest : SysuiTestCase() { private var gestureState = NOT_STARTED private var gestureState: GestureState = GestureState.NotStarted private val handler = TouchpadGestureHandler( BackGestureMonitor( Loading Loading @@ -82,7 +80,7 @@ class TouchpadGestureHandlerTest : SysuiTestCase() { fun triggersGestureDoneForThreeFingerGesture() { backGestureEvents().forEach { handler.onMotionEvent(it) } assertThat(gestureState).isEqualTo(FINISHED) assertThat(gestureState).isEqualTo(GestureState.Finished) } private fun backGestureEvents(): List<MotionEvent> { Loading
packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionKeyTutorialScreen.kt +9 −12 Original line number Diff line number Diff line Loading @@ -37,25 +37,22 @@ import androidx.compose.ui.input.key.onKeyEvent import androidx.compose.ui.input.key.type import com.airbnb.lottie.compose.rememberLottieDynamicProperties import com.android.compose.theme.LocalAndroidColorScheme import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.FINISHED import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.NOT_STARTED import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.Finished import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState.NotStarted import com.android.systemui.res.R @Composable fun ActionKeyTutorialScreen( onDoneButtonClicked: () -> Unit, onBack: () -> Unit, ) { fun ActionKeyTutorialScreen(onDoneButtonClicked: () -> Unit, onBack: () -> Unit) { BackHandler(onBack = onBack) val screenConfig = buildScreenConfig() var actionState by remember { mutableStateOf(NOT_STARTED) } var actionState: TutorialActionState by remember { mutableStateOf(NotStarted) } val focusRequester = remember { FocusRequester() } Box( modifier = Modifier.fillMaxSize() .onKeyEvent { keyEvent: KeyEvent -> if (keyEvent.key == Key.MetaLeft && keyEvent.type == KeyEventType.KeyUp) { actionState = FINISHED actionState = Finished } true } Loading @@ -81,13 +78,13 @@ private fun buildScreenConfig() = titleResId = R.string.tutorial_action_key_title, bodyResId = R.string.tutorial_action_key_guidance, titleSuccessResId = R.string.tutorial_action_key_success_title, bodySuccessResId = R.string.tutorial_action_key_success_body bodySuccessResId = R.string.tutorial_action_key_success_body, ), animations = TutorialScreenConfig.Animations( educationResId = R.raw.action_key_edu, successResId = R.raw.action_key_success ) successResId = R.raw.action_key_success, ), ) @Composable Loading @@ -101,7 +98,7 @@ private fun rememberScreenColors(): TutorialScreenConfig.Colors { rememberColorFilterProperty(".primaryFixedDim", primaryFixedDim), rememberColorFilterProperty(".secondaryFixedDim", secondaryFixedDim), rememberColorFilterProperty(".onSecondaryFixed", onSecondaryFixed), rememberColorFilterProperty(".onSecondaryFixedVariant", onSecondaryFixedVariant) rememberColorFilterProperty(".onSecondaryFixedVariant", onSecondaryFixedVariant), ) val screenColors = remember(dynamicProperties) { Loading