From a60f6e996a7b0991ea171df1995b4e2402b4dcdc Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Fri, 17 Dec 2021 00:46:47 +0200 Subject: [PATCH] Enhance thread awareness to support stickers --- .../handler/room/ThreadsAwarenessHandler.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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 30876c21da..eb03875cb1 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 @@ -21,6 +21,7 @@ import io.realm.Realm import org.matrix.android.sdk.api.session.crypto.CryptoService import org.matrix.android.sdk.api.session.crypto.MXCryptoError 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.RelationType import org.matrix.android.sdk.api.session.events.model.toContent import org.matrix.android.sdk.api.session.events.model.toModel @@ -179,7 +180,13 @@ internal class ThreadsAwarenessHandler @Inject constructor( val rootThreadEventId = getRootThreadEventId(event) ?: return null val payload = decryptedResult?.toMutableMap() ?: return null var body = getValueFromPayload(payload, "body") ?: return null - val msgType = getValueFromPayload(payload, "msgtype") ?: return null + val msgType = getValueFromPayload(payload, "msgtype") ?: run { + if (payload["type"]?.toString() == EventType.STICKER) { + MessageType.MSGTYPE_STICKER_LOCAL + } else { + return null + } + } val rootThreadEvent = getEventFromDB(realm, rootThreadEventId) ?: return null val rootThreadEventSenderId = rootThreadEvent.senderId ?: return null @@ -188,16 +195,16 @@ internal class ThreadsAwarenessHandler @Inject constructor( MessageType.MSGTYPE_STICKER_LOCAL -> { body = "sent a sticker from within a thread" } - MessageType.MSGTYPE_FILE -> { + MessageType.MSGTYPE_FILE -> { body = "sent a file from within a thread" } - MessageType.MSGTYPE_VIDEO -> { + MessageType.MSGTYPE_VIDEO -> { body = "Sent a video from within a thread" } - MessageType.MSGTYPE_IMAGE -> { + MessageType.MSGTYPE_IMAGE -> { body = "sent an image from within a thread" } - MessageType.MSGTYPE_AUDIO -> { + MessageType.MSGTYPE_AUDIO -> { body = "sent an audio file from within a thread" } }