Add time limited indication for verification request.

This commit is contained in:
Benoit Marty
2025-07-11 13:57:56 +02:00
parent 5f1141f9d1
commit b71d3fe91d
4 changed files with 35 additions and 4 deletions

View File

@@ -36,5 +36,9 @@ data class IncomingVerificationState(
data object Canceled : Step
data object Completed : Step
data object Failure : Step
val isTimeLimited: Boolean
get() = this is Initial ||
this is Verifying
}
}

View File

@@ -19,6 +19,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
@@ -140,10 +142,18 @@ private fun IncomingVerificationHeader(step: Step, request: VerificationRequest.
}
Step.Failure -> R.string.screen_session_verification_request_failure_subtitle
}
val timeLimitMessage = if (step.isTimeLimited) {
stringResource(CommonStrings.a11y_time_limited_action_required)
} else {
""
}
PageTitle(
modifier = Modifier.semantics(mergeDescendants = true) {
contentDescription = timeLimitMessage
},
iconStyle = iconStyle,
title = stringResource(id = titleTextId),
subtitle = stringResource(id = subtitleTextId)
subtitle = stringResource(id = subtitleTextId),
)
}
@@ -187,7 +197,9 @@ private fun ContentInitial(
}
is VerificationRequest.Incoming.User -> {
Column(
modifier = Modifier.fillMaxWidth().padding(top = 24.dp),
modifier = Modifier
.fillMaxWidth()
.padding(top = 24.dp),
) {
VerificationUserProfileContent(
userId = request.details.senderProfile.userId,

View File

@@ -29,5 +29,11 @@ data class OutgoingVerificationState(
data class Verifying(val data: SessionVerificationData, val state: AsyncData<Unit>) : Step
data object Completed : Step
data object Exit : Step
val isTimeLimited: Boolean
get() = this is Initial ||
this is AwaitingOtherDeviceResponse ||
this is Ready ||
this is Verifying
}
}

View File

@@ -22,6 +22,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
@@ -180,11 +182,18 @@ private fun OutgoingVerificationHeader(step: Step, request: VerificationRequest.
}
is Step.Exit -> return
}
val timeLimitMessage = if (step.isTimeLimited) {
stringResource(CommonStrings.a11y_time_limited_action_required)
} else {
""
}
PageTitle(
modifier = Modifier.semantics(mergeDescendants = true) {
contentDescription = timeLimitMessage
},
iconStyle = iconStyle,
title = stringResource(id = titleTextId),
subtitle = stringResource(id = subtitleTextId)
subtitle = stringResource(id = subtitleTextId),
)
}