Cleanup code.

This commit is contained in:
Benoit Marty 2025-02-18 13:42:56 +01:00
parent bc6c022cbf
commit a807141a91
2 changed files with 16 additions and 15 deletions

View file

@ -22,6 +22,7 @@ import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertM
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
import io.element.android.libraries.matrix.api.encryption.identity.isAViolation
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
@Composable @Composable
@ -30,24 +31,22 @@ fun IdentityChangeStateView(
onLinkClick: (String, Boolean) -> Unit, onLinkClick: (String, Boolean) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
// Pick the first identity change that is in Pin or Verification violation // Pick the first identity change that is a violation
val maybeIdentityChangeViolation = state.roomMemberIdentityStateChanges.firstOrNull { val identityChangeViolation = state.roomMemberIdentityStateChanges.firstOrNull {
it.identityState == IdentityState.PinViolation || it.identityState.isAViolation()
it.identityState == IdentityState.VerificationViolation
} }
if (maybeIdentityChangeViolation != null) { if (identityChangeViolation != null) {
ComposerAlertMolecule( ComposerAlertMolecule(
modifier = modifier, modifier = modifier,
avatar = maybeIdentityChangeViolation.identityRoomMember.avatarData, avatar = identityChangeViolation.identityRoomMember.avatarData,
content = buildAnnotatedString { content = buildAnnotatedString {
val learnMoreStr = stringResource(CommonStrings.action_learn_more) val learnMoreStr = stringResource(CommonStrings.action_learn_more)
val displayName = maybeIdentityChangeViolation.identityRoomMember.displayNameOrDefault val displayName = identityChangeViolation.identityRoomMember.displayNameOrDefault
val userIdStr = stringResource( val userIdStr = stringResource(
CommonStrings.crypto_identity_change_pin_violation_new_user_id, CommonStrings.crypto_identity_change_pin_violation_new_user_id,
maybeIdentityChangeViolation.identityRoomMember.userId, identityChangeViolation.identityRoomMember.userId,
) )
val fullText = if (identityChangeViolation.identityState == IdentityState.PinViolation) {
val fullText = if (maybeIdentityChangeViolation.identityState == IdentityState.PinViolation) {
stringResource( stringResource(
id = CommonStrings.crypto_identity_change_pin_violation_new, id = CommonStrings.crypto_identity_change_pin_violation_new,
displayName, displayName,
@ -92,19 +91,19 @@ fun IdentityChangeStateView(
end = learnMoreStartIndex + learnMoreStr.length, end = learnMoreStartIndex + learnMoreStr.length,
) )
}, },
submitText = if (maybeIdentityChangeViolation.identityState == IdentityState.VerificationViolation) { submitText = if (identityChangeViolation.identityState == IdentityState.VerificationViolation) {
stringResource(CommonStrings.crypto_identity_change_withdraw_verification_action) stringResource(CommonStrings.crypto_identity_change_withdraw_verification_action)
} else { } else {
stringResource(CommonStrings.action_ok) stringResource(CommonStrings.action_ok)
}, },
onSubmitClick = { onSubmitClick = {
if (maybeIdentityChangeViolation.identityState == IdentityState.VerificationViolation) { if (identityChangeViolation.identityState == IdentityState.VerificationViolation) {
state.eventSink(IdentityChangeEvent.WithdrawVerification(maybeIdentityChangeViolation.identityRoomMember.userId)) state.eventSink(IdentityChangeEvent.WithdrawVerification(identityChangeViolation.identityRoomMember.userId))
} else { } else {
state.eventSink(IdentityChangeEvent.PinIdentity(maybeIdentityChangeViolation.identityRoomMember.userId)) state.eventSink(IdentityChangeEvent.PinIdentity(identityChangeViolation.identityRoomMember.userId))
} }
}, },
isCritical = maybeIdentityChangeViolation.identityState == IdentityState.VerificationViolation, isCritical = identityChangeViolation.identityState == IdentityState.VerificationViolation,
) )
} }
} }

View file

@ -32,3 +32,5 @@ enum class IdentityState {
*/ */
VerificationViolation, VerificationViolation,
} }
fun IdentityState.isAViolation() = this == IdentityState.PinViolation || this == IdentityState.VerificationViolation