QrCodeIntroEvents -> QrCodeIntroEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:03:42 +02:00
parent b75d8bb6c1
commit 0bf671a305
7 changed files with 11 additions and 11 deletions
@@ -8,6 +8,6 @@
package io.element.android.features.login.impl.screens.qrcode.intro package io.element.android.features.login.impl.screens.qrcode.intro
sealed interface QrCodeIntroEvents { sealed interface QrCodeIntroEvent {
data object Continue : QrCodeIntroEvents data object Continue : QrCodeIntroEvent
} }
@@ -40,9 +40,9 @@ class QrCodeIntroPresenter(
} }
} }
fun handleEvent(event: QrCodeIntroEvents) { fun handleEvent(event: QrCodeIntroEvent) {
when (event) { when (event) {
QrCodeIntroEvents.Continue -> if (cameraPermissionState.permissionGranted) { QrCodeIntroEvent.Continue -> if (cameraPermissionState.permissionGranted) {
canContinue = true canContinue = true
} else { } else {
pendingPermissionRequest = true pendingPermissionRequest = true
@@ -15,5 +15,5 @@ data class QrCodeIntroState(
val desktopAppName: String, val desktopAppName: String,
val cameraPermissionState: PermissionsState, val cameraPermissionState: PermissionsState,
val canContinue: Boolean, val canContinue: Boolean,
val eventSink: (QrCodeIntroEvents) -> Unit val eventSink: (QrCodeIntroEvent) -> Unit
) )
@@ -30,7 +30,7 @@ fun aQrCodeIntroState(
permission = Manifest.permission.CAMERA, permission = Manifest.permission.CAMERA,
), ),
canContinue: Boolean = false, canContinue: Boolean = false,
eventSink: (QrCodeIntroEvents) -> Unit = {}, eventSink: (QrCodeIntroEvent) -> Unit = {},
) = QrCodeIntroState( ) = QrCodeIntroState(
appName = appName, appName = appName,
desktopAppName = desktopAppName, desktopAppName = desktopAppName,
@@ -91,7 +91,7 @@ private fun ColumnScope.Buttons(
text = stringResource(id = R.string.screen_qr_code_login_initial_state_button_title), text = stringResource(id = R.string.screen_qr_code_login_initial_state_button_title),
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
onClick = { onClick = {
state.eventSink.invoke(QrCodeIntroEvents.Continue) state.eventSink.invoke(QrCodeIntroEvent.Continue)
} }
) )
} }
@@ -37,7 +37,7 @@ class QrCodeIntroPresenterTest {
val permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionsPresenter) val permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionsPresenter)
val presenter = createQrCodeIntroPresenter(permissionsPresenterFactory = permissionsPresenterFactory) val presenter = createQrCodeIntroPresenter(permissionsPresenterFactory = permissionsPresenterFactory)
presenter.test { presenter.test {
awaitItem().eventSink(QrCodeIntroEvents.Continue) awaitItem().eventSink(QrCodeIntroEvent.Continue)
assertThat(awaitItem().canContinue).isTrue() assertThat(awaitItem().canContinue).isTrue()
} }
} }
@@ -48,7 +48,7 @@ class QrCodeIntroPresenterTest {
val permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionsPresenter) val permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionsPresenter)
val presenter = createQrCodeIntroPresenter(permissionsPresenterFactory = permissionsPresenterFactory) val presenter = createQrCodeIntroPresenter(permissionsPresenterFactory = permissionsPresenterFactory)
presenter.test { presenter.test {
awaitItem().eventSink(QrCodeIntroEvents.Continue) awaitItem().eventSink(QrCodeIntroEvent.Continue)
assertThat(awaitItem().cameraPermissionState.showDialog).isTrue() assertThat(awaitItem().cameraPermissionState.showDialog).isTrue()
} }
} }
@@ -59,12 +59,12 @@ class QrCodeIntroViewTest : RobolectricTest() {
@Test @Test
fun `on submit button clicked - emits the Continue event`() = runAndroidComposeUiTest { fun `on submit button clicked - emits the Continue event`() = runAndroidComposeUiTest {
val eventRecorder = EventsRecorder<QrCodeIntroEvents>() val eventRecorder = EventsRecorder<QrCodeIntroEvent>()
setQrCodeIntroView( setQrCodeIntroView(
state = aQrCodeIntroState(eventSink = eventRecorder), state = aQrCodeIntroState(eventSink = eventRecorder),
) )
clickOn(R.string.screen_qr_code_login_initial_state_button_title) clickOn(R.string.screen_qr_code_login_initial_state_button_title)
eventRecorder.assertSingle(QrCodeIntroEvents.Continue) eventRecorder.assertSingle(QrCodeIntroEvent.Continue)
} }
private fun AndroidComposeUiTest<ComponentActivity>.setQrCodeIntroView( private fun AndroidComposeUiTest<ComponentActivity>.setQrCodeIntroView(