diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt index e56ad1e7854c58b5bc2890d76f9fee5f24ccfe35..711956361797bf47068b030c31c272ee08c55f10 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt @@ -65,7 +65,7 @@ data class MatrixConfiguration( /** * Thread messages default enable/disabled value. */ - val threadMessagesEnabledDefault: Boolean = true, + val threadMessagesEnabledDefault: Boolean = false, /** * List of network interceptors, they will be added when building an OkHttp client. */ diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/room/ThreadsAwarenessHandler.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/room/ThreadsAwarenessHandler.kt index 70553359ff1a521ce6fadc486019afa02454c7d1..08530f8ef9ea1bfcae203f041b0a9345bd838c98 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/room/ThreadsAwarenessHandler.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/room/ThreadsAwarenessHandler.kt @@ -26,13 +26,17 @@ import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.RelationType import org.matrix.android.sdk.api.session.events.model.getRelationContentForType import org.matrix.android.sdk.api.session.events.model.getRootThreadEventId +import org.matrix.android.sdk.api.session.events.model.isImageMessage import org.matrix.android.sdk.api.session.events.model.isSticker +import org.matrix.android.sdk.api.session.events.model.isVideoMessage 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.room.model.message.MessageFormat +import org.matrix.android.sdk.api.session.room.model.message.MessageImageContent import org.matrix.android.sdk.api.session.room.model.message.MessageRelationContent 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.MessageVideoContent import org.matrix.android.sdk.api.session.room.model.relation.RelationDefaultContent import org.matrix.android.sdk.api.session.room.send.SendState import org.matrix.android.sdk.api.session.sync.model.SyncResponse @@ -328,14 +332,35 @@ internal class ThreadsAwarenessHandler @Inject constructor( eventToInjectBody, eventBody ) - - return MessageTextContent( - relatesTo = threadRelation, - msgType = MessageType.MSGTYPE_TEXT, - format = MessageFormat.FORMAT_MATRIX_HTML, - body = eventBody, - formattedBody = replyFormatted - ).toContent() + return when { + eventToInject.isImageMessage() -> { + val imageContent = eventToInject.getClearContent().toModel<MessageImageContent>() + MessageImageContent( + relatesTo = threadRelation, + msgType = MessageType.MSGTYPE_IMAGE, + body = eventBody, + url = imageContent?.url, + encryptedFileInfo = imageContent?.encryptedFileInfo + ).toContent() + } + eventToInject.isVideoMessage() -> { + val videoContent = eventToInject.getClearContent().toModel<MessageVideoContent>() + MessageVideoContent( + relatesTo = threadRelation, + msgType = MessageType.MSGTYPE_VIDEO, + body = eventBody, + url = videoContent?.url, + encryptedFileInfo = videoContent?.encryptedFileInfo + ).toContent() + } + else -> MessageTextContent( + relatesTo = threadRelation, + msgType = MessageType.MSGTYPE_TEXT, + format = MessageFormat.FORMAT_MATRIX_HTML, + body = eventBody, + formattedBody = replyFormatted + ).toContent() + } } /**