diff --git a/app/src/main/kotlin/com/wire/android/mapper/RegularMessageContentMapper.kt b/app/src/main/kotlin/com/wire/android/mapper/RegularMessageContentMapper.kt index 801f15f51b5..67e2be689a6 100644 --- a/app/src/main/kotlin/com/wire/android/mapper/RegularMessageContentMapper.kt +++ b/app/src/main/kotlin/com/wire/android/mapper/RegularMessageContentMapper.kt @@ -222,6 +222,7 @@ class RegularMessageMapper @Inject constructor( } is MessageContent.QuotedMessageDetails.Text -> UIQuotedMessage.UIQuotedData.Text(quotedContent.value) + is MessageContent.QuotedMessageDetails.Location -> UIQuotedMessage.UIQuotedData.Location(quotedContent.locationName.orEmpty()) MessageContent.QuotedMessageDetails.Deleted -> UIQuotedMessage.UIQuotedData.Deleted MessageContent.QuotedMessageDetails.Invalid -> UIQuotedMessage.UIQuotedData.Invalid } diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/messages/QuotedMessage.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/messages/QuotedMessage.kt index 1f3914f9f6f..8b0c7597510 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/messages/QuotedMessage.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/messages/QuotedMessage.kt @@ -139,6 +139,15 @@ internal fun QuotedMessage( style = style, startContent = startContent ) + + is UIQuotedMessage.UIQuotedData.Location -> QuotedLocation( + senderName = messageData.senderName, + originalDateTimeText = messageData.originalMessageDateDescription, + locationName = quotedContent.locationName, + modifier = modifier, + style = style, + startContent = startContent + ) } } @@ -406,7 +415,11 @@ private fun AutosizeContainer( val imageDimension = Dimension.value(dimensions().spacing56x) // ConstraintLayout is used to measure the text content and then // resize the image to match the height of the text - ConstraintLayout(modifier = modifier.fillMaxWidth().padding(dimensions().spacing8x)) { + ConstraintLayout( + modifier = modifier + .fillMaxWidth() + .padding(dimensions().spacing8x) + ) { val (leftSide, rightSide) = createRefs() Column( verticalArrangement = Arrangement.spacedBy(4.dp, Alignment.Top), @@ -431,7 +444,8 @@ private fun AutosizeContainer( end.linkTo(parent.end) width = imageDimension height = Dimension.fillToConstraints - }.clip(RoundedCornerShape(dimensions().spacing8x)) + } + .clip(RoundedCornerShape(dimensions().spacing8x)) .border( width = 1.dp, color = MaterialTheme.wireColorScheme.outline, @@ -514,3 +528,29 @@ private fun QuotedGenericAsset( }, footerContent = { QuotedMessageOriginalDate(originalDateTimeText) } ) } + +@Composable +private fun QuotedLocation( + senderName: UIText, + originalDateTimeText: UIText, + locationName: String, + style: QuotedMessageStyle, + startContent: @Composable () -> Unit = {}, + modifier: Modifier +) { + QuotedMessageContent( + senderName = senderName.asString(), style = style, modifier = modifier, centerContent = { + MainContentText(locationName) + }, startContent = { + startContent() + }, endContent = { + Icon( + painter = painterResource(R.drawable.ic_location), + contentDescription = null, + modifier = modifier + .size(dimensions().spacing24x), + tint = colorsScheme().secondaryText + ) + }, footerContent = { QuotedMessageOriginalDate(originalDateTimeText) } + ) +} 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 693072af39a..0fba3728c64 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 @@ -592,6 +592,8 @@ sealed class UIQuotedMessage { val displayable: ImageAsset.PrivateAsset ) : Content + data class Location(val locationName: String) : Content + object AudioMessage : Content object Deleted : Content diff --git a/app/src/main/kotlin/com/wire/android/ui/home/messagecomposer/state/MessageCompositionHolder.kt b/app/src/main/kotlin/com/wire/android/ui/home/messagecomposer/state/MessageCompositionHolder.kt index db1eb3712a2..6e2e3ec826d 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/messagecomposer/state/MessageCompositionHolder.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/messagecomposer/state/MessageCompositionHolder.kt @@ -97,6 +97,10 @@ class MessageCompositionHolder( ) } + is UIMessageContent.Location -> with(messageContent) { + UIQuotedMessage.UIQuotedData.Location(locationName = name) + } + else -> { appLogger.w("Attempting to reply to an unsupported message type of content = $messageContent") null diff --git a/kalium b/kalium index a1d587fe94c..ed692e172d1 160000 --- a/kalium +++ b/kalium @@ -1 +1 @@ -Subproject commit a1d587fe94c683eaa86d31337654cce6a1f99834 +Subproject commit ed692e172d11550a7b38d71a1144201c7e7dc8b6