QrCodeScanEvents -> QrCodeScanEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:04:23 +02:00
parent 0bf671a305
commit a039fcd655
6 changed files with 13 additions and 13 deletions
@@ -8,7 +8,7 @@
package io.element.android.features.login.impl.screens.qrcode.scan
sealed interface QrCodeScanEvents {
data class QrCodeScanned(val code: ByteArray) : QrCodeScanEvents
data object TryAgain : QrCodeScanEvents
sealed interface QrCodeScanEvent {
data class QrCodeScanned(val code: ByteArray) : QrCodeScanEvent
data object TryAgain : QrCodeScanEvent
}
@@ -52,13 +52,13 @@ class QrCodeScanPresenter(
authenticationAction.value = AsyncAction.Failure(it)
}
fun handleEvent(event: QrCodeScanEvents) {
fun handleEvent(event: QrCodeScanEvent) {
when (event) {
QrCodeScanEvents.TryAgain -> {
QrCodeScanEvent.TryAgain -> {
isScanning = true
authenticationAction.value = AsyncAction.Uninitialized
}
is QrCodeScanEvents.QrCodeScanned -> {
is QrCodeScanEvent.QrCodeScanned -> {
isScanning = false
coroutineScope.getQrCodeData(authenticationAction, event.code)
}
@@ -14,5 +14,5 @@ import io.element.android.libraries.matrix.api.auth.qrlogin.MatrixQrCodeLoginDat
data class QrCodeScanState(
val isScanning: Boolean,
val authenticationAction: AsyncAction<MatrixQrCodeLoginData>,
val eventSink: (QrCodeScanEvents) -> Unit
val eventSink: (QrCodeScanEvent) -> Unit
)
@@ -46,7 +46,7 @@ open class QrCodeScanStatePreviewParam : PreviewParameterProvider<QrCodeScanStat
fun aQrCodeScanState(
isScanning: Boolean = true,
authenticationAction: AsyncAction<MatrixQrCodeLoginData> = AsyncAction.Uninitialized,
eventSink: (QrCodeScanEvents) -> Unit = {},
eventSink: (QrCodeScanEvent) -> Unit = {},
) = QrCodeScanState(
isScanning = isScanning,
authenticationAction = authenticationAction,
@@ -105,7 +105,7 @@ private fun Content(
) {
QrCodeCameraView(
modifier = Modifier.fillMaxSize(),
onScanQrCode = { state.eventSink.invoke(QrCodeScanEvents.QrCodeScanned(it)) },
onScanQrCode = { state.eventSink.invoke(QrCodeScanEvent.QrCodeScanned(it)) },
isScanning = state.isScanning,
)
}
@@ -125,7 +125,7 @@ private fun ColumnScope.Buttons(
.fillMaxWidth()
.padding(bottom = 16.dp),
onClick = {
state.eventSink.invoke(QrCodeScanEvents.TryAgain)
state.eventSink.invoke(QrCodeScanEvent.TryAgain)
}
)
Column(
@@ -50,7 +50,7 @@ class QrCodeScanPresenterTest {
)
presenter.test {
val initialState = awaitItem()
initialState.eventSink(QrCodeScanEvents.QrCodeScanned(byteArrayOf()))
initialState.eventSink(QrCodeScanEvent.QrCodeScanned(byteArrayOf()))
assertThat(awaitItem().isScanning).isFalse()
assertThat(awaitItem().authenticationAction.isLoading()).isTrue()
assertThat(awaitItem().authenticationAction.isSuccess()).isTrue()
@@ -65,14 +65,14 @@ class QrCodeScanPresenterTest {
val presenter = createQrCodeScanPresenter(qrCodeLoginDataFactory = qrCodeLoginDataFactory)
presenter.test {
val initialState = awaitItem()
initialState.eventSink(QrCodeScanEvents.QrCodeScanned(byteArrayOf()))
initialState.eventSink(QrCodeScanEvent.QrCodeScanned(byteArrayOf()))
assertThat(awaitItem().isScanning).isFalse()
assertThat(awaitItem().authenticationAction.isLoading()).isTrue()
val errorState = awaitItem()
assertThat(errorState.authenticationAction.isFailure()).isTrue()
errorState.eventSink(QrCodeScanEvents.TryAgain)
errorState.eventSink(QrCodeScanEvent.TryAgain)
assertThat(awaitItem().isScanning).isTrue()
assertThat(awaitItem().authenticationAction.isUninitialized()).isTrue()
}