From c3652affacf6e0d5e74a1382a4f2300dede43747 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 28 Jul 2023 17:13:45 +0300 Subject: [PATCH] Create test method for media caption edit --- .../timeline/post/SendMessageDataSource.kt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/src/main/java/org/futo/circles/core/timeline/post/SendMessageDataSource.kt b/core/src/main/java/org/futo/circles/core/timeline/post/SendMessageDataSource.kt index 80443d68a..a9a4545fa 100644 --- a/core/src/main/java/org/futo/circles/core/timeline/post/SendMessageDataSource.kt +++ b/core/src/main/java/org/futo/circles/core/timeline/post/SendMessageDataSource.kt @@ -13,10 +13,20 @@ import org.futo.circles.core.extensions.toVideoContentAttachmentData import org.futo.circles.core.model.CreatePollContent import org.futo.circles.core.model.MediaType import org.futo.circles.core.provider.MatrixSessionProvider +import org.matrix.android.sdk.api.session.events.model.Event +import org.matrix.android.sdk.api.session.events.model.EventType +import org.matrix.android.sdk.api.session.events.model.LocalEcho +import org.matrix.android.sdk.api.session.events.model.RelationType +import org.matrix.android.sdk.api.session.events.model.UnsignedData +import org.matrix.android.sdk.api.session.events.model.toContent +import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.api.session.getRoom import org.matrix.android.sdk.api.session.room.Room import org.matrix.android.sdk.api.session.room.getTimelineEvent +import org.matrix.android.sdk.api.session.room.model.message.MessageImageContent +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.relation.RelationDefaultContent import org.matrix.android.sdk.api.util.Cancelable import org.matrix.android.sdk.api.util.CancelableBag import org.matrix.android.sdk.internal.util.CancelableWork @@ -54,6 +64,18 @@ class SendMessageDataSource @Inject constructor(@ApplicationContext private val .editTextMessage(event, MessageType.MSGTYPE_TEXT, message, null, false) } + fun editMediaCaption(eventId: String, roomId: String, message: String) { + val roomForMessage = session?.getRoom(roomId) ?: return + val event = roomForMessage.getTimelineEvent(eventId)?.root ?: return + val additionalContent = mutableMapOf<String, Any>().apply { + this[MediaCaptionFieldKey] = "edited caption" + } + val editedEventContent = event.getClearContent().toModel<MessageImageContent>()?.copy( + relatesTo = RelationDefaultContent(RelationType.REPLACE, eventId), + ).toContent().plus(additionalContent) + roomForMessage.sendService().sendEvent(EventType.MESSAGE, editedEventContent) + } + suspend fun sendMedia( roomId: String, uri: Uri, -- GitLab