Skip to content

Commit

Permalink
feat: Handle new SystemMessages (#2289)
Browse files Browse the repository at this point in the history
  • Loading branch information
borichellow committed Sep 29, 2023
1 parent e1f0bb9 commit b7d4c8d
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 1 deletion.
Expand Up @@ -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)
}

Expand Down Expand Up @@ -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) {
Expand Down
Expand Up @@ -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,
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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)
Expand Down
Expand Up @@ -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
)
}
}

Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Expand Up @@ -603,6 +603,8 @@
<string name="label_system_message_conversation_failed_add_many_members_details">%1$s could not be added to the group.</string>
<string name="label_system_message_conversation_failed_add_one_member_details">%1$s could not be added to the group.</string>
<string name="label_system_message_conversation_degraded">This conversation is no longer verified, as some user uses at least one device without a valid end-to-end identity certificate.</string>
<string name="label_system_message_conversation_verified_mls">All devices are verified (end-to-end identity)</string>
<string name="label_system_message_conversation_verified_proteus">All fingerprints are verified (Proteus)</string>
<!-- Last messages -->
<plurals name="last_message_self_added_users">
<item quantity="one">You added 1 person to the conversation</item>
Expand Down
2 changes: 1 addition & 1 deletion kalium
Submodule kalium updated 18 files
+27 βˆ’15 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/TypingIndicatorRepository.kt
+8 βˆ’0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/Message.kt
+6 βˆ’2 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContent.kt
+8 βˆ’0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageMapper.kt
+2 βˆ’0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/PersistMessageUseCase.kt
+16 βˆ’0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/publicuser/PublicUserMapper.kt
+14 βˆ’0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/user/UserRepository.kt
+3 βˆ’2 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+1 βˆ’1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/ConversationScope.kt
+5 βˆ’4 ...commonMain/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandler.kt
+21 βˆ’5 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/ObserveUsersTypingUseCase.kt
+4 βˆ’4 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/conversation/TypingIndicatorRepositoryTest.kt
+25 βˆ’0 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/user/UserRepositoryTest.kt
+1 βˆ’1 ...onTest/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandlerTest.kt
+3 βˆ’1 logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/handler/TypingIndicatorHandlerTest.kt
+7 βˆ’4 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/message/MessageEntity.kt
+14 βˆ’3 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/message/MessageInsertExtension.kt
+4 βˆ’0 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/message/MessageMapper.kt

0 comments on commit b7d4c8d

Please sign in to comment.