mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
QrCodeIntroEvents -> QrCodeIntroEvent
This commit is contained in:
+2
-2
@@ -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
|
||||||
}
|
}
|
||||||
+2
-2
@@ -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
|
||||||
|
|||||||
+1
-1
@@ -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
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -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,
|
||||||
|
|||||||
+1
-1
@@ -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)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user