From 03f293f2164356186c891ea313ad6134dfbec013 Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Thu, 10 Mar 2022 12:06:02 +0200 Subject: [PATCH] Remove io.element.thread and add stable m.thread prefix --- .../api/session/events/model/AggregatedRelations.kt | 2 +- .../android/sdk/api/session/events/model/Event.kt | 4 ++-- .../sdk/api/session/events/model/RelationType.kt | 1 - .../sdk/internal/session/filter/FilterFactory.kt | 2 +- .../sdk/internal/session/filter/RoomEventFilter.kt | 6 ++---- .../android/sdk/internal/session/room/RoomAPI.kt | 2 +- .../session/room/send/LocalEchoEventFactory.kt | 12 ++++++------ .../sdk/internal/session/room/send/TextContent.kt | 2 +- .../sync/handler/room/ThreadsAwarenessHandler.kt | 4 ++-- .../features/home/room/detail/TimelineViewModel.kt | 2 +- 10 files changed, 17 insertions(+), 20 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/AggregatedRelations.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/AggregatedRelations.kt index 7547d1cfe9..ae8ed3941f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/AggregatedRelations.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/AggregatedRelations.kt @@ -50,5 +50,5 @@ import com.squareup.moshi.JsonClass data class AggregatedRelations( @Json(name = "m.annotation") val annotations: AggregatedAnnotation? = null, @Json(name = "m.reference") val references: DefaultUnsignedRelationInfo? = null, - @Json(name = RelationType.IO_THREAD) val latestThread: LatestThreadUnsignedRelation? = null + @Json(name = RelationType.THREAD) val latestThread: LatestThreadUnsignedRelation? = null ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/Event.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/Event.kt index 97eee9188c..9d86730d9f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/Event.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/Event.kt @@ -392,9 +392,9 @@ fun Event.isReplyRenderedInThread(): Boolean { return isReply() && getRelationContent()?.inReplyTo?.shouldRenderInThread() == true } -fun Event.isThread(): Boolean = getRelationContentForType(RelationType.IO_THREAD)?.eventId != null +fun Event.isThread(): Boolean = getRelationContentForType(RelationType.THREAD)?.eventId != null -fun Event.getRootThreadEventId(): String? = getRelationContentForType(RelationType.IO_THREAD)?.eventId +fun Event.getRootThreadEventId(): String? = getRelationContentForType(RelationType.THREAD)?.eventId fun Event.isEdition(): Boolean { return getRelationContentForType(RelationType.REPLACE)?.eventId != null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/RelationType.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/RelationType.kt index fb26264ad7..74dc74b294 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/RelationType.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/RelationType.kt @@ -30,7 +30,6 @@ object RelationType { /** Lets you define an event which is a thread reply to an existing event.*/ const val THREAD = "m.thread" - const val IO_THREAD = "io.element.thread" /** Lets you define an event which adds a response to an existing event.*/ const val RESPONSE = "org.matrix.response" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/FilterFactory.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/FilterFactory.kt index 2e52354037..676a4f6a38 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/FilterFactory.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/FilterFactory.kt @@ -28,7 +28,7 @@ internal object FilterFactory { limit = numberOfEvents, // senders = listOf(userId), // relationSenders = userId?.let { listOf(it) }, - relationTypes = listOf(RelationType.IO_THREAD) + relationTypes = listOf(RelationType.THREAD) ) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/RoomEventFilter.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/RoomEventFilter.kt index aac987f3f8..634ea73480 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/RoomEventFilter.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/filter/RoomEventFilter.kt @@ -52,14 +52,12 @@ data class RoomEventFilter( * A list of relation types which must be exist pointing to the event being filtered. * If this list is absent then no filtering is done on relation types. */ -// @Json(name = "related_by_rel_types") val relationTypes: List? = null, - @Json(name = "io.element.relation_types") val relationTypes: List? = null, // To be replaced with the above line after the release + @Json(name = "related_by_rel_types") val relationTypes: List? = null, /** * A list of senders of relations which must exist pointing to the event being filtered. * If this list is absent then no filtering is done on relation types. */ -// @Json(name = "related_by_senders") val relationSenders: List? = null, - @Json(name = "io.element.relation_senders") val relationSenders: List? = null, // To be replaced with the above line after the release + @Json(name = "related_by_senders") val relationSenders: List? = null, /** * A list of room IDs to include. If this list is absent then all rooms are included. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/RoomAPI.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/RoomAPI.kt index ceed846608..10f75473b7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/RoomAPI.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/RoomAPI.kt @@ -239,7 +239,7 @@ internal interface RoomAPI { @GET(NetworkConstants.URI_API_PREFIX_PATH_UNSTABLE + "rooms/{roomId}/relations/{eventId}/{relationType}") suspend fun getThreadsRelations(@Path("roomId") roomId: String, @Path("eventId") eventId: String, - @Path("relationType") relationType: String = RelationType.IO_THREAD, + @Path("relationType") relationType: String = RelationType.THREAD, @Query("from") from: String? = null, @Query("to") to: String? = null, @Query("limit") limit: Int? = null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoEventFactory.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoEventFactory.kt index 3c36d58710..ef4c09cb9f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoEventFactory.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoEventFactory.kt @@ -353,7 +353,7 @@ internal class LocalEchoEventFactory @Inject constructor( url = attachment.queryUri.toString(), relatesTo = rootThreadEventId?.let { RelationDefaultContent( - type = RelationType.IO_THREAD, + type = RelationType.THREAD, eventId = it, inReplyTo = ReplyToContent(eventId = localEchoRepository.getLatestThreadEvent(it)) ) @@ -396,7 +396,7 @@ internal class LocalEchoEventFactory @Inject constructor( url = attachment.queryUri.toString(), relatesTo = rootThreadEventId?.let { RelationDefaultContent( - type = RelationType.IO_THREAD, + type = RelationType.THREAD, eventId = it, inReplyTo = ReplyToContent(eventId = localEchoRepository.getLatestThreadEvent(it)) ) @@ -426,7 +426,7 @@ internal class LocalEchoEventFactory @Inject constructor( voiceMessageIndicator = if (!isVoiceMessage) null else emptyMap(), relatesTo = rootThreadEventId?.let { RelationDefaultContent( - type = RelationType.IO_THREAD, + type = RelationType.THREAD, eventId = it, inReplyTo = ReplyToContent(eventId = localEchoRepository.getLatestThreadEvent(it)) ) @@ -446,7 +446,7 @@ internal class LocalEchoEventFactory @Inject constructor( url = attachment.queryUri.toString(), relatesTo = rootThreadEventId?.let { RelationDefaultContent( - type = RelationType.IO_THREAD, + type = RelationType.THREAD, eventId = it, inReplyTo = ReplyToContent(eventId = localEchoRepository.getLatestThreadEvent(it)) ) @@ -479,7 +479,7 @@ internal class LocalEchoEventFactory @Inject constructor( private fun enhanceStickerIfNeeded(type: String, content: Content?): Content? { var newContent: Content? = null if (type == EventType.STICKER) { - val isThread = (content.toModel())?.relatesTo?.type == RelationType.IO_THREAD + val isThread = (content.toModel())?.relatesTo?.type == RelationType.THREAD val rootThreadEventId = (content.toModel())?.relatesTo?.eventId if (isThread && rootThreadEventId != null) { val newRelationalDefaultContent = (content.toModel())?.relatesTo?.copy( @@ -579,7 +579,7 @@ internal class LocalEchoEventFactory @Inject constructor( private fun generateReplyRelationContent(eventId: String, rootThreadEventId: String? = null, showAsReply: Boolean): RelationDefaultContent = rootThreadEventId?.let { RelationDefaultContent( - type = RelationType.IO_THREAD, + type = RelationType.THREAD, eventId = it, inReplyTo = ReplyToContent(eventId = eventId, renderIn = if (showAsReply) arrayListOf("m.thread") else null)) } ?: RelationDefaultContent(null, null, ReplyToContent(eventId = eventId)) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/TextContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/TextContent.kt index 5c629f87f0..65ae90f285 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/TextContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/TextContent.kt @@ -58,7 +58,7 @@ fun TextContent.toThreadTextContent( format = MessageFormat.FORMAT_MATRIX_HTML.takeIf { formattedText != null }, body = text, relatesTo = RelationDefaultContent( - type = RelationType.IO_THREAD, + type = RelationType.THREAD, eventId = rootThreadEventId, inReplyTo = ReplyToContent( eventId = latestThreadEventId 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 f3a1523955..23db397ccd 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 @@ -332,7 +332,7 @@ internal class ThreadsAwarenessHandler @Inject constructor( .findAll() cacheEventRootId.add(rootThreadEventId) return threadList.filter { - it.asDomain().getRelationContentForType(RelationType.IO_THREAD)?.inReplyTo?.eventId == currentEventId + it.asDomain().getRelationContentForType(RelationType.THREAD)?.inReplyTo?.eventId == currentEventId } } @@ -350,7 +350,7 @@ internal class ThreadsAwarenessHandler @Inject constructor( * @param event */ private fun isThreadEvent(event: Event): Boolean = - event.content.toModel()?.relatesTo?.type == RelationType.IO_THREAD + event.content.toModel()?.relatesTo?.type == RelationType.THREAD /** * Returns the root thread eventId or null otherwise diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt index d5694a5ad8..b93f62eed6 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt @@ -506,7 +506,7 @@ class TimelineViewModel @AssistedInject constructor( private fun handleSendSticker(action: RoomDetailAction.SendSticker) { val content = initialState.rootThreadEventId?.let { - action.stickerContent.copy(relatesTo = RelationDefaultContent(RelationType.IO_THREAD, it)) + action.stickerContent.copy(relatesTo = RelationDefaultContent(RelationType.THREAD, it)) } ?: action.stickerContent room.sendEvent(EventType.STICKER, content.toContent())