diff --git a/app/src/main/kotlin/com/wire/android/mapper/SystemMessageContentMapper.kt b/app/src/main/kotlin/com/wire/android/mapper/SystemMessageContentMapper.kt
index abbd03a056..676cb93a7f 100644
--- a/app/src/main/kotlin/com/wire/android/mapper/SystemMessageContentMapper.kt
+++ b/app/src/main/kotlin/com/wire/android/mapper/SystemMessageContentMapper.kt
@@ -65,6 +65,8 @@ class SystemMessageContentMapper @Inject constructor(
is MessageContent.MLSWrongEpochWarning -> mapMLSWrongEpochWarning()
is MessageContent.ConversationDegradedMLS -> mapConversationDegraded(Conversation.Protocol.MLS)
is MessageContent.ConversationDegradedProteus -> mapConversationDegraded(Conversation.Protocol.PROTEUS)
+ is MessageContent.ConversationVerifiedMLS -> mapConversationVerified(Conversation.Protocol.MLS)
+ is MessageContent.ConversationVerifiedProteus -> mapConversationVerified(Conversation.Protocol.PROTEUS)
is MessageContent.FederationStopped -> mapFederationMessage(content)
}
@@ -239,6 +241,9 @@ class SystemMessageContentMapper @Inject constructor(
private fun mapConversationDegraded(protocol: Conversation.Protocol): UIMessageContent.SystemMessage =
UIMessageContent.SystemMessage.ConversationDegraded(protocol)
+ private fun mapConversationVerified(protocol: Conversation.Protocol): UIMessageContent.SystemMessage =
+ UIMessageContent.SystemMessage.ConversationVerified(protocol)
+
fun mapMemberName(user: User?, type: SelfNameType = SelfNameType.NameOrDeleted): UIText = when (user) {
is OtherUser -> user.name?.let { UIText.DynamicString(it) } ?: UIText.StringResource(messageResourceProvider.memberNameDeleted)
is SelfUser -> when (type) {
diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/SystemMessageItem.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/SystemMessageItem.kt
index 645015aba7..f87ad8437a 100644
--- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/SystemMessageItem.kt
+++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/SystemMessageItem.kt
@@ -244,6 +244,7 @@ private fun getColorFilter(message: SystemMessage): ColorFilter? {
is SystemMessage.MissedCall.OtherCalled -> null
is SystemMessage.MissedCall.YouCalled -> null
is SystemMessage.ConversationDegraded -> null
+ is SystemMessage.ConversationVerified -> null
is SystemMessage.Knock -> ColorFilter.tint(colorsScheme().primary)
is SystemMessage.MemberFailedToAdd -> ColorFilter.tint(colorsScheme().error)
is SystemMessage.MemberAdded,
@@ -488,6 +489,7 @@ private val SystemMessage.expandable
is SystemMessage.ConversationStartedWithMembers -> this.memberNames.size > EXPANDABLE_THRESHOLD
is SystemMessage.MemberFailedToAdd -> this.usersCount > SINGLE_EXPANDABLE_THRESHOLD
is SystemMessage.ConversationDegraded -> false
+ is SystemMessage.ConversationVerified -> false
is SystemMessage.FederationStopped -> false
}
@@ -552,6 +554,7 @@ fun SystemMessage.annotatedString(
is SystemMessage.HistoryLost -> arrayOf()
is SystemMessage.MLSWrongEpochWarning -> arrayOf()
is SystemMessage.ConversationDegraded -> arrayOf()
+ is SystemMessage.ConversationVerified -> arrayOf()
is SystemMessage.ConversationMessageTimerActivated -> arrayOf(
author.asString(res),
selfDeletionDuration.longLabel.asString(res)
diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt
index 6ae37e9a65..0a34ec07df 100644
--- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt
+++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/model/UIMessage.kt
@@ -448,6 +448,13 @@ sealed class UIMessageContent {
else R.drawable.ic_shield_holo,
R.string.label_system_message_conversation_degraded
)
+
+ data class ConversationVerified(val protocol: Conversation.Protocol) : SystemMessage(
+ if (protocol == Conversation.Protocol.MLS) R.drawable.ic_certificate_valid_mls
+ else R.drawable.ic_certificate_valid_proteus,
+ if (protocol == Conversation.Protocol.MLS) R.string.label_system_message_conversation_verified_mls
+ else R.string.label_system_message_conversation_verified_proteus
+ )
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2d2375f92e..3f3e9119bc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -603,6 +603,8 @@
%1$s could not be added to the group.
%1$s could not be added to the group.
This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate.
+ All devices are verified (end-to-end identity)
+ All fingerprints are verified (Proteus)
- You added 1 person to the conversation
diff --git a/kalium b/kalium
index 2497ff627a..91c2b37c5b 160000
--- a/kalium
+++ b/kalium
@@ -1 +1 @@
-Subproject commit 2497ff627a19874849c7d8d307bb4790b77945cb
+Subproject commit 91c2b37c5b86662f875e91aebf60f799baf7dfac