diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt index 95f81af479..fdc9f373d4 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt @@ -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 } } diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt index 12bfe99fcd..ba063a8f74 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt @@ -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, diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationState.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationState.kt index 02653124ab..9b2d5f2e40 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationState.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationState.kt @@ -29,5 +29,11 @@ data class OutgoingVerificationState( data class Verifying(val data: SessionVerificationData, val state: AsyncData) : 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 } } diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationView.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationView.kt index 8669472cf4..4264a924b7 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationView.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/outgoing/OutgoingVerificationView.kt @@ -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), ) }