From 16f7cb4b8d23a64a5d4cc3a72e03d63806fdb4d8 Mon Sep 17 00:00:00 2001 From: SpiritCroc Date: Wed, 1 Mar 2023 09:48:50 +0100 Subject: [PATCH] Prefer caption over generic text for image/video message previews Change-Id: I0cfbae4df14b7f8327e56afd152f0e1fffb93c45 --- .../format/DisplayableEventFormatter.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/DisplayableEventFormatter.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/DisplayableEventFormatter.kt index f098e8b1a9..bc6380ad30 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/DisplayableEventFormatter.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/DisplayableEventFormatter.kt @@ -42,7 +42,9 @@ import org.matrix.android.sdk.api.session.room.model.message.MessageContent import org.matrix.android.sdk.api.session.room.model.message.MessagePollContent import org.matrix.android.sdk.api.session.room.model.message.MessageTextContent import org.matrix.android.sdk.api.session.room.model.message.MessageType +import org.matrix.android.sdk.api.session.room.model.message.MessageWithAttachmentContent import org.matrix.android.sdk.api.session.room.model.message.asMessageAudioEvent +import org.matrix.android.sdk.api.session.room.model.message.getCaption import org.matrix.android.sdk.api.session.room.model.relation.ReactionContent import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent import org.matrix.android.sdk.api.session.room.timeline.getTextDisplayableContent @@ -94,7 +96,8 @@ class DisplayableEventFormatter @Inject constructor( simpleFormat(senderName, stringProvider.getString(R.string.verification_request), appendAuthor) } MessageType.MSGTYPE_IMAGE -> { - simpleFormat(senderName, stringProvider.getString(R.string.sent_an_image), appendAuthor) + val text = (messageContent as? MessageWithAttachmentContent)?.getCaption() ?: stringProvider.getString(R.string.sent_an_image) + simpleFormat(senderName, text, appendAuthor) } MessageType.MSGTYPE_AUDIO -> { when { @@ -110,10 +113,12 @@ class DisplayableEventFormatter @Inject constructor( } } MessageType.MSGTYPE_VIDEO -> { - simpleFormat(senderName, stringProvider.getString(R.string.sent_a_video), appendAuthor) + val text = (messageContent as? MessageWithAttachmentContent)?.getCaption() ?: stringProvider.getString(R.string.sent_a_video) + simpleFormat(senderName, text, appendAuthor) } MessageType.MSGTYPE_FILE -> { - simpleFormat(senderName, stringProvider.getString(R.string.sent_a_file), appendAuthor) + val text = (messageContent as? MessageWithAttachmentContent)?.getCaption() ?: stringProvider.getString(R.string.sent_a_file) + simpleFormat(senderName, text, appendAuthor) } MessageType.MSGTYPE_LOCATION -> { simpleFormat(senderName, stringProvider.getString(R.string.sent_location), appendAuthor) @@ -215,7 +220,7 @@ class DisplayableEventFormatter @Inject constructor( stringProvider.getString(R.string.verification_request) } MessageType.MSGTYPE_IMAGE -> { - stringProvider.getString(R.string.sent_an_image) + (messageContent as? MessageWithAttachmentContent)?.getCaption() ?: stringProvider.getString(R.string.sent_an_image) } MessageType.MSGTYPE_AUDIO -> { if ((messageContent as? MessageAudioContent)?.voiceMessageIndicator != null) { @@ -225,10 +230,10 @@ class DisplayableEventFormatter @Inject constructor( } } MessageType.MSGTYPE_VIDEO -> { - stringProvider.getString(R.string.sent_a_video) + (messageContent as? MessageWithAttachmentContent)?.getCaption() ?: stringProvider.getString(R.string.sent_a_video) } MessageType.MSGTYPE_FILE -> { - stringProvider.getString(R.string.sent_a_file) + (messageContent as? MessageWithAttachmentContent)?.getCaption() ?: stringProvider.getString(R.string.sent_a_file) } MessageType.MSGTYPE_LOCATION -> { stringProvider.getString(R.string.sent_location)