diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/BroadcastMessage.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/BroadcastMessage.kt index 3a299de5f63..dd80acb02e7 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/BroadcastMessage.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/BroadcastMessage.kt @@ -65,17 +65,14 @@ data class BroadcastMessage( is MessageContent.Availability -> mutableMapOf( typeKey to "availability", - "content" to "$content", ) is MessageContent.Cleared -> mutableMapOf( typeKey to "cleared", - "content" to "$content", ) is MessageContent.Reaction -> mutableMapOf( typeKey to "reaction", - "content" to "$content", ) is MessageContent.Receipt -> mutableMapOf( @@ -84,8 +81,14 @@ data class BroadcastMessage( ) MessageContent.Ignored -> mutableMapOf( - typeKey to "ignored", - "content" to "$content", + typeKey to "ignored" + ) + + is MessageContent.ButtonAction -> mutableMapOf( + typeKey to "buttonAction", + ) + is MessageContent.ButtonActionConfirmation -> mutableMapOf( + typeKey to "buttonActionConfirmation", ) } diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/Message.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/Message.kt index 82f5a0765ec..4d5ef372056 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/Message.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/Message.kt @@ -124,6 +124,10 @@ sealed interface Message { is MessageContent.Unknown -> mutableMapOf( typeKey to "unknown" ) + + is MessageContent.Composite -> mutableMapOf( + typeKey to "composite" + ) } val standardProperties = mapOf( @@ -157,6 +161,7 @@ sealed interface Message { override val isSelfMessage: Boolean, override val expirationData: ExpirationData? ) : Sendable { + @Suppress("LongMethod") override fun toLogString(): String { val typeKey = "type" @@ -189,17 +194,14 @@ sealed interface Message { is MessageContent.Availability -> mutableMapOf( typeKey to "availability", - "content" to "$content", ) is MessageContent.Cleared -> mutableMapOf( typeKey to "cleared", - "content" to "$content", ) is MessageContent.Reaction -> mutableMapOf( typeKey to "reaction", - "content" to "$content", ) is MessageContent.Receipt -> mutableMapOf( @@ -209,7 +211,15 @@ sealed interface Message { MessageContent.Ignored -> mutableMapOf( typeKey to "ignored", - "content" to "$content", + "content" to content.getType(), + ) + + is MessageContent.ButtonAction -> mutableMapOf( + typeKey to "buttonAction" + ) + + is MessageContent.ButtonActionConfirmation -> mutableMapOf( + typeKey to "buttonActionConfirmation" ) } @@ -279,6 +289,7 @@ sealed interface Message { MessageContent.HistoryLost -> mutableMapOf( typeKey to "conversationMightLostHistory" ) + is MessageContent.ConversationMessageTimerChanged -> mutableMapOf( typeKey to "conversationMessageTimerChanged" ) @@ -294,7 +305,7 @@ sealed interface Message { val standardProperties = mapOf( "id" to id.obfuscateId(), - "conversationId" to "${conversationId.toLogString()}", + "conversationId" to conversationId.toLogString(), "date" to date, "senderUserId" to senderUserId.value.obfuscateId(), "status" to "$status", diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContent.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContent.kt index 0a89bf341cd..2ef46962b48 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContent.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContent.kt @@ -25,6 +25,7 @@ import com.wire.kalium.logic.data.message.mention.MessageMention import com.wire.kalium.logic.data.message.receipt.ReceiptType import com.wire.kalium.logic.data.user.UserAvailabilityStatus import com.wire.kalium.logic.data.user.UserId +import com.wire.kalium.protobuf.messages.Button import kotlinx.datetime.Instant sealed class MessageContent { @@ -163,6 +164,54 @@ sealed class MessageContent { data class Knock(val hotKnock: Boolean) : Regular() + data class Composite( + val textContent: Text?, + val buttonList: List