diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenter.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenter.kt index aa991a54bc..4cde3f927f 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenter.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenter.kt @@ -108,18 +108,18 @@ class IncomingVerificationPresenter( } } - fun handleEvent(event: IncomingVerificationViewEvents) { + fun handleEvent(event: IncomingVerificationViewEvent) { Timber.d("Verification user action: ${event::class.simpleName}") when (event) { - IncomingVerificationViewEvents.StartVerification -> + IncomingVerificationViewEvent.StartVerification -> stateAndDispatch.dispatchAction(StateMachineEvent.AcceptIncomingRequest) - IncomingVerificationViewEvents.IgnoreVerification -> + IncomingVerificationViewEvent.IgnoreVerification -> navigator.onFinish() - IncomingVerificationViewEvents.ConfirmVerification -> + IncomingVerificationViewEvent.ConfirmVerification -> stateAndDispatch.dispatchAction(StateMachineEvent.AcceptChallenge) - IncomingVerificationViewEvents.DeclineVerification -> + IncomingVerificationViewEvent.DeclineVerification -> stateAndDispatch.dispatchAction(StateMachineEvent.DeclineChallenge) - IncomingVerificationViewEvents.GoBack -> { + IncomingVerificationViewEvent.GoBack -> { when (val verificationStep = step) { is Step.Initial -> if (verificationStep.isWaiting) { stateAndDispatch.dispatchAction(StateMachineEvent.Cancel) diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt index 311fc13e74..e3663800b2 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt @@ -16,7 +16,7 @@ import io.element.android.libraries.matrix.api.verification.VerificationRequest data class IncomingVerificationState( val step: Step, val request: VerificationRequest.Incoming, - val eventSink: (IncomingVerificationViewEvents) -> Unit, + val eventSink: (IncomingVerificationViewEvent) -> Unit, ) { @Stable sealed interface Step { diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationStatePreviewParam.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationStatePreviewParam.kt index c8d70e03c0..68672be025 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationStatePreviewParam.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationStatePreviewParam.kt @@ -87,7 +87,7 @@ internal fun anIncomingUserVerificationRequest() = VerificationRequest.Incoming. internal fun anIncomingVerificationState( step: Step = aStepInitial(), verificationRequest: VerificationRequest.Incoming = anIncomingSessionVerificationRequest(), - eventSink: (IncomingVerificationViewEvents) -> Unit = {}, + eventSink: (IncomingVerificationViewEvent) -> Unit = {}, ) = IncomingVerificationState( step = step, request = verificationRequest, diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt index 64adc78aa0..00b430fb53 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt @@ -62,7 +62,7 @@ fun IncomingVerificationView( val step = state.step BackHandler { - state.eventSink(IncomingVerificationViewEvents.GoBack) + state.eventSink(IncomingVerificationViewEvent.GoBack) } HeaderFooterPage( modifier = modifier, @@ -70,7 +70,7 @@ fun IncomingVerificationView( TopAppBar( title = {}, navigationIcon = { - BackButton(onClick = { state.eventSink(IncomingVerificationViewEvents.GoBack) }) + BackButton(onClick = { state.eventSink(IncomingVerificationViewEvent.GoBack) }) }, colors = topAppBarColors(containerColor = Color.Transparent), ) @@ -217,13 +217,13 @@ private fun IncomingVerificationBottomMenu( text = stringResource(CommonStrings.action_start_verification), enabled = !step.isWaiting, showProgress = step.isWaiting, - onClick = { eventSink(IncomingVerificationViewEvents.StartVerification) }, + onClick = { eventSink(IncomingVerificationViewEvent.StartVerification) }, ) TextButton( modifier = Modifier.fillMaxWidth(), text = stringResource(CommonStrings.action_ignore), enabled = !step.isWaiting, - onClick = { eventSink(IncomingVerificationViewEvents.IgnoreVerification) }, + onClick = { eventSink(IncomingVerificationViewEvent.IgnoreVerification) }, ) } } @@ -235,14 +235,14 @@ private fun IncomingVerificationBottomMenu( enabled = !step.isWaiting, showProgress = step.isWaiting, onClick = { - eventSink(IncomingVerificationViewEvents.ConfirmVerification) + eventSink(IncomingVerificationViewEvent.ConfirmVerification) }, ) TextButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.screen_session_verification_they_dont_match), enabled = !step.isWaiting, - onClick = { eventSink(IncomingVerificationViewEvents.DeclineVerification) }, + onClick = { eventSink(IncomingVerificationViewEvent.DeclineVerification) }, ) } } @@ -254,7 +254,7 @@ private fun IncomingVerificationBottomMenu( modifier = Modifier.fillMaxWidth(), text = stringResource(CommonStrings.action_done), onClick = { - eventSink(IncomingVerificationViewEvents.GoBack) + eventSink(IncomingVerificationViewEvent.GoBack) }, ) } diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewEvents.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewEvent.kt similarity index 82% rename from features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewEvents.kt rename to features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewEvent.kt index 383354860b..26a05b44cc 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewEvents.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewEvent.kt @@ -8,10 +8,10 @@ package io.element.android.features.verifysession.impl.incoming -sealed interface IncomingVerificationViewEvents { - data object GoBack : IncomingVerificationViewEvents - data object StartVerification : IncomingVerificationViewEvents - data object IgnoreVerification : IncomingVerificationViewEvents - data object ConfirmVerification : IncomingVerificationViewEvents - data object DeclineVerification : IncomingVerificationViewEvents +sealed interface IncomingVerificationViewEvent { + data object GoBack : IncomingVerificationViewEvent + data object StartVerification : IncomingVerificationViewEvent + data object IgnoreVerification : IncomingVerificationViewEvent + data object ConfirmVerification : IncomingVerificationViewEvent + data object DeclineVerification : IncomingVerificationViewEvent } diff --git a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenterTest.kt b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenterTest.kt index a8d3802268..45d5c623c4 100644 --- a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenterTest.kt +++ b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenterTest.kt @@ -72,7 +72,7 @@ class IncomingVerificationPresenterTest { acknowledgeVerificationRequestLambda.assertions().isCalledOnce().with(value(anIncomingSessionVerificationRequest)) acceptVerificationRequestLambda.assertions().isNeverCalled() // User accept the incoming verification - initialState.eventSink(IncomingVerificationViewEvents.StartVerification) + initialState.eventSink(IncomingVerificationViewEvent.StartVerification) skipItems(1) val initialWaitingState = awaitItem() assertThat((initialWaitingState.step as IncomingVerificationState.Step.Initial).isWaiting).isTrue() @@ -96,7 +96,7 @@ class IncomingVerificationPresenterTest { ) ) // User claims that the emoji matches - emojiState.eventSink(IncomingVerificationViewEvents.ConfirmVerification) + emojiState.eventSink(IncomingVerificationViewEvent.ConfirmVerification) val emojiWaitingItem = awaitItem() assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue() advanceUntilIdle() @@ -141,7 +141,7 @@ class IncomingVerificationPresenterTest { acknowledgeVerificationRequestLambda.assertions().isCalledOnce().with(value(anIncomingSessionVerificationRequest)) acceptVerificationRequestLambda.assertions().isNeverCalled() // User accept the incoming verification - initialState.eventSink(IncomingVerificationViewEvents.StartVerification) + initialState.eventSink(IncomingVerificationViewEvent.StartVerification) skipItems(1) val initialWaitingState = awaitItem() assertThat((initialWaitingState.step as IncomingVerificationState.Step.Initial).isWaiting).isTrue() @@ -159,7 +159,7 @@ class IncomingVerificationPresenterTest { ) val emojiState = awaitItem() // User claims that the emojis do not match - emojiState.eventSink(IncomingVerificationViewEvents.DeclineVerification) + emojiState.eventSink(IncomingVerificationViewEvent.DeclineVerification) val emojiWaitingItem = awaitItem() assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue() advanceUntilIdle() @@ -241,7 +241,7 @@ class IncomingVerificationPresenterTest { acknowledgeVerificationRequestLambda.assertions().isCalledOnce().with(value(anIncomingSessionVerificationRequest)) acceptVerificationRequestLambda.assertions().isNeverCalled() // User accept the incoming verification - initialState.eventSink(IncomingVerificationViewEvents.StartVerification) + initialState.eventSink(IncomingVerificationViewEvent.StartVerification) skipItems(1) val initialWaitingState = awaitItem() assertThat((initialWaitingState.step as IncomingVerificationState.Step.Initial).isWaiting).isTrue() @@ -259,7 +259,7 @@ class IncomingVerificationPresenterTest { ) val emojiState = awaitItem() // User goes back - emojiState.eventSink(IncomingVerificationViewEvents.GoBack) + emojiState.eventSink(IncomingVerificationViewEvent.GoBack) val emojiWaitingItem = awaitItem() assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue() advanceUntilIdle() @@ -289,7 +289,7 @@ class IncomingVerificationPresenterTest { navigator = IncomingVerificationNavigator(navigatorLambda), ).test { val initialState = awaitItem() - initialState.eventSink(IncomingVerificationViewEvents.IgnoreVerification) + initialState.eventSink(IncomingVerificationViewEvent.IgnoreVerification) skipItems(1) navigatorLambda.assertions().isCalledOnce() } diff --git a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewTest.kt b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewTest.kt index 5947d1d0a5..c5c64585bc 100644 --- a/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewTest.kt +++ b/features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationViewTest.kt @@ -27,7 +27,7 @@ class IncomingVerificationViewTest : RobolectricTest() { // region step Initial @Test fun `back key pressed - ignore the verification`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = aStepInitial(), @@ -35,12 +35,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) pressBackKey() - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } @Test fun `ignore incoming verification emits the expected event`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = aStepInitial(), @@ -48,12 +48,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) clickOn(CommonStrings.action_ignore) - eventsRecorder.assertSingle(IncomingVerificationViewEvents.IgnoreVerification) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.IgnoreVerification) } @Test fun `start incoming verification emits the expected event`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = aStepInitial(), @@ -61,12 +61,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) clickOn(CommonStrings.action_start_verification) - eventsRecorder.assertSingle(IncomingVerificationViewEvents.StartVerification) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.StartVerification) } @Test fun `back key pressed - when awaiting response cancels the verification`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = aStepInitial( @@ -76,14 +76,14 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) pressBackKey() - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } // endregion step Initial // region step Verifying @Test fun `back key pressed - when ready to verify cancels the verification`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Verifying( @@ -94,12 +94,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) pressBackKey() - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } @Test fun `back key pressed - when verifying and loading emits the expected event`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Verifying( @@ -110,12 +110,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) pressBackKey() - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } @Test fun `clicking on they do not match emits the expected event`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Verifying( @@ -126,12 +126,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) clickOn(R.string.screen_session_verification_they_dont_match) - eventsRecorder.assertSingle(IncomingVerificationViewEvents.DeclineVerification) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.DeclineVerification) } @Test fun `clicking on they match emits the expected event`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Verifying( @@ -142,14 +142,14 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) clickOn(R.string.screen_session_verification_they_match) - eventsRecorder.assertSingle(IncomingVerificationViewEvents.ConfirmVerification) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.ConfirmVerification) } // endregion // region step Failure @Test fun `back key pressed - when failure resets the flow`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Failure, @@ -157,12 +157,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) pressBackKey() - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } @Test fun `click on done - when failure resets the flow`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Failure, @@ -170,7 +170,7 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) clickOn(CommonStrings.action_done) - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } // endregion @@ -178,7 +178,7 @@ class IncomingVerificationViewTest : RobolectricTest() { // region step Completed @Test fun `back key pressed - on Completed step emits the expected event`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Completed, @@ -186,12 +186,12 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) pressBackKey() - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } @Test fun `when flow is completed and the user clicks on the done button, the expected event is emitted`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() setIncomingVerificationView( anIncomingVerificationState( step = IncomingVerificationState.Step.Completed, @@ -199,7 +199,7 @@ class IncomingVerificationViewTest : RobolectricTest() { ), ) clickOn(CommonStrings.action_done) - eventsRecorder.assertSingle(IncomingVerificationViewEvents.GoBack) + eventsRecorder.assertSingle(IncomingVerificationViewEvent.GoBack) } // endregion