Code cleanup.

This commit is contained in:
Benoit Marty 2026-01-08 16:34:09 +01:00
parent 49434c12a2
commit 492e5d61e5
2 changed files with 40 additions and 44 deletions

View file

@ -140,12 +140,12 @@ private fun IncomingVerificationHeader(step: Step, request: VerificationRequest.
} }
IconTitleSubtitleMolecule( IconTitleSubtitleMolecule(
modifier = Modifier modifier = Modifier
.padding(bottom = 16.dp) .padding(bottom = 16.dp)
.semantics(mergeDescendants = true) { .semantics(mergeDescendants = true) {
contentDescription = timeLimitMessage contentDescription = timeLimitMessage
focused = true focused = true
} }
.focusable(), .focusable(),
iconStyle = iconStyle, iconStyle = iconStyle,
title = stringResource(id = titleTextId), title = stringResource(id = titleTextId),
subTitle = stringResource(id = subtitleTextId), subTitle = stringResource(id = subtitleTextId),
@ -166,7 +166,7 @@ private fun IncomingVerificationContent(
@Composable @Composable
private fun ContentInitial( private fun ContentInitial(
initialIncoming: Step.Initial, stepInitial: Step.Initial,
request: VerificationRequest.Incoming, request: VerificationRequest.Incoming,
) { ) {
when (request) { when (request) {
@ -176,14 +176,14 @@ private fun ContentInitial(
verticalArrangement = Arrangement.spacedBy(24.dp), verticalArrangement = Arrangement.spacedBy(24.dp),
) { ) {
SessionDetailsView( SessionDetailsView(
deviceName = initialIncoming.deviceDisplayName, deviceName = stepInitial.deviceDisplayName,
deviceId = initialIncoming.deviceId, deviceId = stepInitial.deviceId,
signInFormattedTimestamp = initialIncoming.formattedSignInTime, signInFormattedTimestamp = stepInitial.formattedSignInTime,
) )
Text( Text(
modifier = Modifier modifier = Modifier
.align(Alignment.CenterHorizontally) .align(Alignment.CenterHorizontally)
.padding(bottom = 16.dp), .padding(bottom = 16.dp),
text = stringResource(R.string.screen_session_verification_request_footer), text = stringResource(R.string.screen_session_verification_request_footer),
style = ElementTheme.typography.fontBodyMdMedium, style = ElementTheme.typography.fontBodyMdMedium,
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
@ -193,8 +193,8 @@ private fun ContentInitial(
is VerificationRequest.Incoming.User -> { is VerificationRequest.Incoming.User -> {
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(top = 24.dp), .padding(top = 24.dp),
) { ) {
VerificationUserProfileContent( VerificationUserProfileContent(
user = request.details.senderProfile, user = request.details.senderProfile,
@ -208,10 +208,8 @@ private fun ContentInitial(
private fun IncomingVerificationBottomMenu( private fun IncomingVerificationBottomMenu(
state: IncomingVerificationState, state: IncomingVerificationState,
) { ) {
val step = state.step
val eventSink = state.eventSink val eventSink = state.eventSink
when (val step = state.step) {
when (step) {
is Step.Initial -> { is Step.Initial -> {
VerificationBottomMenu { VerificationBottomMenu {
Button( Button(
@ -236,7 +234,9 @@ private fun IncomingVerificationBottomMenu(
text = stringResource(R.string.screen_session_verification_they_match), text = stringResource(R.string.screen_session_verification_they_match),
enabled = !step.isWaiting, enabled = !step.isWaiting,
showProgress = step.isWaiting, showProgress = step.isWaiting,
onClick = { eventSink(IncomingVerificationViewEvents.ConfirmVerification) }, onClick = {
eventSink(IncomingVerificationViewEvents.ConfirmVerification)
},
) )
TextButton( TextButton(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
@ -253,7 +253,9 @@ private fun IncomingVerificationBottomMenu(
Button( Button(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
text = stringResource(CommonStrings.action_done), text = stringResource(CommonStrings.action_done),
onClick = { eventSink(IncomingVerificationViewEvents.GoBack) }, onClick = {
eventSink(IncomingVerificationViewEvents.GoBack)
},
) )
} }
} }

View file

@ -35,7 +35,6 @@ import io.element.android.features.verifysession.impl.R
import io.element.android.features.verifysession.impl.outgoing.OutgoingVerificationState.Step import io.element.android.features.verifysession.impl.outgoing.OutgoingVerificationState.Step
import io.element.android.features.verifysession.impl.ui.VerificationBottomMenu import io.element.android.features.verifysession.impl.ui.VerificationBottomMenu
import io.element.android.features.verifysession.impl.ui.VerificationContentVerifying import io.element.android.features.verifysession.impl.ui.VerificationContentVerifying
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage
import io.element.android.libraries.designsystem.components.BigIcon import io.element.android.libraries.designsystem.components.BigIcon
@ -97,15 +96,15 @@ fun OutgoingVerificationView(
navigationIcon = { navigationIcon = {
BackButton(onClick = ::cancelOrResetFlow) BackButton(onClick = ::cancelOrResetFlow)
}, },
colors = topAppBarColors(containerColor = Color.Transparent) colors = topAppBarColors(containerColor = Color.Transparent),
) )
}, },
header = { header = {
OutgoingVerificationHeader(step = step, request = state.request) OutgoingVerificationHeader(step = step, request = state.request)
}, },
footer = { footer = {
OutgoingVerificationViewBottomMenu( OutgoingVerificationBottomMenu(
screenState = state, state = state,
onCancelClick = ::cancelOrResetFlow, onCancelClick = ::cancelOrResetFlow,
onContinueClick = onFinish, onContinueClick = onFinish,
) )
@ -113,7 +112,7 @@ fun OutgoingVerificationView(
isScrollable = true, isScrollable = true,
) { ) {
OutgoingVerificationContent( OutgoingVerificationContent(
flowState = step, step = step,
request = state.request, request = state.request,
onLearnMoreClick = onLearnMoreClick, onLearnMoreClick = onLearnMoreClick,
) )
@ -203,20 +202,16 @@ private fun OutgoingVerificationHeader(step: Step, request: VerificationRequest.
@Composable @Composable
private fun OutgoingVerificationContent( private fun OutgoingVerificationContent(
flowState: Step, step: Step,
request: VerificationRequest.Outgoing, request: VerificationRequest.Outgoing,
onLearnMoreClick: () -> Unit, onLearnMoreClick: () -> Unit,
) { ) {
when (flowState) { when (step) {
is Step.Initial -> { is Step.Initial -> when (request) {
when (request) { is VerificationRequest.Outgoing.CurrentSession -> Unit
is VerificationRequest.Outgoing.CurrentSession -> Unit is VerificationRequest.Outgoing.User -> ContentInitial(onLearnMoreClick)
is VerificationRequest.Outgoing.User -> ContentInitial(onLearnMoreClick)
}
}
is Step.Verifying -> {
VerificationContentVerifying(flowState.data)
} }
is Step.Verifying -> VerificationContentVerifying(step.data)
else -> Unit else -> Unit
} }
} }
@ -240,22 +235,18 @@ private fun ContentInitial(
} }
@Composable @Composable
private fun OutgoingVerificationViewBottomMenu( private fun OutgoingVerificationBottomMenu(
screenState: OutgoingVerificationState, state: OutgoingVerificationState,
onCancelClick: () -> Unit, onCancelClick: () -> Unit,
onContinueClick: () -> Unit, onContinueClick: () -> Unit,
) { ) {
val verificationViewState = screenState.step val eventSink = state.eventSink
val eventSink = screenState.eventSink when (val step = state.step) {
val isVerifying = (verificationViewState as? Step.Verifying)?.state is AsyncData.Loading<Unit>
when (verificationViewState) {
Step.Loading -> error("Should not happen") Step.Loading -> error("Should not happen")
is Step.AwaitingOtherDeviceResponse, is Step.AwaitingOtherDeviceResponse,
is Step.Initial -> { is Step.Initial -> {
VerificationBottomMenu { VerificationBottomMenu {
val isWaiting = verificationViewState is Step.AwaitingOtherDeviceResponse val isWaiting = step is Step.AwaitingOtherDeviceResponse
Button( Button(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
text = stringResource(CommonStrings.action_start_verification), text = stringResource(CommonStrings.action_start_verification),
@ -291,6 +282,7 @@ private fun OutgoingVerificationViewBottomMenu(
} }
} }
is Step.Verifying -> { is Step.Verifying -> {
val isVerifying = step.state.isLoading()
VerificationBottomMenu { VerificationBottomMenu {
Button( Button(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
@ -305,7 +297,9 @@ private fun OutgoingVerificationViewBottomMenu(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
text = stringResource(R.string.screen_session_verification_they_dont_match), text = stringResource(R.string.screen_session_verification_they_dont_match),
enabled = !isVerifying, enabled = !isVerifying,
onClick = { eventSink(OutgoingVerificationViewEvents.DeclineVerification) }, onClick = {
eventSink(OutgoingVerificationViewEvents.DeclineVerification)
},
) )
} }
} }