Skip to content

Commit be2d83b

Browse files
committed
dependencies (rust sdk) : replace RoomTombstone by SuccessorRoom
1 parent b8afce8 commit be2d83b

File tree

7 files changed

+53
-24
lines changed

7 files changed

+53
-24
lines changed

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/RoomInfo.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ data class RoomInfo(
3232
val isEncrypted: Boolean?,
3333
val joinRule: JoinRule?,
3434
val isSpace: Boolean,
35-
val tombstone: RoomTombstone?,
3635
val isFavorite: Boolean,
3736
val canonicalAlias: RoomAlias?,
3837
val alternativeAliases: ImmutableList<RoomAlias>,
@@ -74,12 +73,8 @@ data class RoomInfo(
7473
val pinnedEventIds: ImmutableList<EventId>,
7574
val creator: UserId?,
7675
val historyVisibility: RoomHistoryVisibility,
76+
val successorRoom: SuccessorRoom?,
7777
) {
7878
val aliases: List<RoomAlias>
7979
get() = listOfNotNull(canonicalAlias) + alternativeAliases
8080
}
81-
82-
data class RoomTombstone(
83-
val body: String,
84-
val replacementRoomId: RoomId,
85-
)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright 2025 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
5+
* Please see LICENSE files in the repository root for full details.
6+
*/
7+
8+
package io.element.android.libraries.matrix.api.room
9+
10+
import io.element.android.libraries.matrix.api.core.RoomId
11+
12+
/**
13+
*
14+
* When a room A is tombstoned, it is replaced by a room B. The room A is the
15+
* predecessor of B, and B is the successor of A. This type holds information
16+
* about the successor room.
17+
*
18+
* A room is tombstoned if it has received a m.room.tombstone state event.
19+
*
20+
*/
21+
data class SuccessorRoom(
22+
/**
23+
* The ID of the replacement room.
24+
*/
25+
val roomId: RoomId,
26+
/**
27+
* The message explaining why the room has been tombstoned.
28+
*/
29+
val reason: String?,
30+
)

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomInfoMapper.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.core.UserId
1414
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
1515
import io.element.android.libraries.matrix.api.room.RoomInfo
1616
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
17-
import io.element.android.libraries.matrix.api.room.RoomTombstone
17+
import io.element.android.libraries.matrix.api.room.SuccessorRoom
1818
import io.element.android.libraries.matrix.api.user.MatrixUser
1919
import io.element.android.libraries.matrix.impl.room.history.map
2020
import io.element.android.libraries.matrix.impl.room.join.map
@@ -28,6 +28,7 @@ import uniffi.matrix_sdk_base.EncryptionState
2828
import org.matrix.rustcomponents.sdk.Membership as RustMembership
2929
import org.matrix.rustcomponents.sdk.RoomInfo as RustRoomInfo
3030
import org.matrix.rustcomponents.sdk.RoomNotificationMode as RustRoomNotificationMode
31+
import org.matrix.rustcomponents.sdk.SuccessorRoom as RustSuccessorRoom
3132

3233
class RoomInfoMapper {
3334
fun map(rustRoomInfo: RustRoomInfo): RoomInfo = rustRoomInfo.let {
@@ -47,9 +48,6 @@ class RoomInfoMapper {
4748
},
4849
joinRule = it.joinRule?.map(),
4950
isSpace = it.isSpace,
50-
tombstone = it.tombstone?.let {
51-
RoomTombstone(it.body, RoomId(it.replacementRoomId))
52-
},
5351
isFavorite = it.isFavourite,
5452
canonicalAlias = it.canonicalAlias?.let(::RoomAlias),
5553
alternativeAliases = it.alternativeAliases.map(::RoomAlias).toImmutableList(),
@@ -71,6 +69,7 @@ class RoomInfoMapper {
7169
numUnreadMentions = it.numUnreadMentions.toLong(),
7270
numUnreadNotifications = it.numUnreadNotifications.toLong(),
7371
historyVisibility = it.historyVisibility.map(),
72+
successorRoom = it.successorRoom?.map(),
7473
)
7574
}
7675
}
@@ -89,6 +88,11 @@ fun RustRoomNotificationMode.map(): RoomNotificationMode = when (this) {
8988
RustRoomNotificationMode.MUTE -> RoomNotificationMode.MUTE
9089
}
9190

91+
fun RustSuccessorRoom.map(): SuccessorRoom = SuccessorRoom(
92+
roomId = RoomId(roomId),
93+
reason = reason,
94+
)
95+
9296
/**
9397
* Map a RoomHero to a MatrixUser. There is not need to create a RoomHero type on the application side.
9498
*/

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/RoomInfo.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import org.matrix.rustcomponents.sdk.RoomHistoryVisibility
1717
import org.matrix.rustcomponents.sdk.RoomInfo
1818
import org.matrix.rustcomponents.sdk.RoomMember
1919
import org.matrix.rustcomponents.sdk.RoomNotificationMode
20-
import org.matrix.rustcomponents.sdk.RoomTombstoneInfo
20+
import org.matrix.rustcomponents.sdk.SuccessorRoom
2121
import uniffi.matrix_sdk_base.EncryptionState
2222

2323
fun aRustRoomInfo(
@@ -30,7 +30,6 @@ fun aRustRoomInfo(
3030
isDirect: Boolean = false,
3131
isPublic: Boolean = false,
3232
isSpace: Boolean = false,
33-
tombstone: RoomTombstoneInfo? = null,
3433
isFavourite: Boolean = false,
3534
canonicalAlias: String? = null,
3635
alternativeAliases: List<String> = listOf(),
@@ -54,6 +53,7 @@ fun aRustRoomInfo(
5453
roomCreator: UserId? = null,
5554
joinRule: JoinRule? = null,
5655
historyVisibility: RoomHistoryVisibility = RoomHistoryVisibility.Joined,
56+
successorRoom: SuccessorRoom? = null,
5757
) = RoomInfo(
5858
id = id,
5959
displayName = displayName,
@@ -64,7 +64,6 @@ fun aRustRoomInfo(
6464
isDirect = isDirect,
6565
isPublic = isPublic,
6666
isSpace = isSpace,
67-
tombstone = tombstone,
6867
isFavourite = isFavourite,
6968
canonicalAlias = canonicalAlias,
7069
alternativeAliases = alternativeAliases,
@@ -87,5 +86,6 @@ fun aRustRoomInfo(
8786
pinnedEventIds = pinnedEventIds,
8887
creator = roomCreator?.value,
8988
joinRule = joinRule,
90-
historyVisibility = historyVisibility
89+
historyVisibility = historyVisibility,
90+
successorRoom = successorRoom,
9191
)

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/room/RoomInfoMapperTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class RoomInfoMapperTest {
5454
isPublic = false,
5555
isSpace = false,
5656
joinRule = RustJoinRule.Invite,
57-
tombstone = null,
57+
successorRoom = null,
5858
isFavourite = false,
5959
canonicalAlias = A_ROOM_ALIAS.value,
6060
alternativeAliases = listOf(A_ROOM_ALIAS.value),
@@ -90,7 +90,6 @@ class RoomInfoMapperTest {
9090
isDirect = true,
9191
isEncrypted = true,
9292
isSpace = false,
93-
tombstone = null,
9493
isFavorite = false,
9594
joinRule = JoinRule.Invite,
9695
canonicalAlias = A_ROOM_ALIAS,
@@ -120,6 +119,7 @@ class RoomInfoMapperTest {
120119
numUnreadNotifications = 13L,
121120
numUnreadMentions = 14L,
122121
historyVisibility = RoomHistoryVisibility.Joined,
122+
successorRoom = null
123123
)
124124
)
125125
}
@@ -139,7 +139,7 @@ class RoomInfoMapperTest {
139139
isPublic = true,
140140
joinRule = null,
141141
isSpace = false,
142-
tombstone = null,
142+
successorRoom = null,
143143
isFavourite = true,
144144
canonicalAlias = null,
145145
alternativeAliases = emptyList(),
@@ -175,7 +175,7 @@ class RoomInfoMapperTest {
175175
isDirect = false,
176176
joinRule = null,
177177
isSpace = false,
178-
tombstone = null,
178+
successorRoom = null,
179179
isFavorite = true,
180180
canonicalAlias = null,
181181
alternativeAliases = emptyList<RoomAlias>().toPersistentList(),

libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomInfoFixture.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
1515
import io.element.android.libraries.matrix.api.room.RoomInfo
1616
import io.element.android.libraries.matrix.api.room.RoomMember
1717
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
18-
import io.element.android.libraries.matrix.api.room.RoomTombstone
18+
import io.element.android.libraries.matrix.api.room.SuccessorRoom
1919
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
2020
import io.element.android.libraries.matrix.api.room.join.JoinRule
2121
import io.element.android.libraries.matrix.api.user.MatrixUser
@@ -39,7 +39,7 @@ fun aRoomInfo(
3939
isEncrypted: Boolean = false,
4040
joinRule: JoinRule? = JoinRule.Public,
4141
isSpace: Boolean = false,
42-
tombstone: RoomTombstone? = null,
42+
successorRoom: SuccessorRoom? = null,
4343
isFavorite: Boolean = false,
4444
canonicalAlias: RoomAlias? = null,
4545
alternativeAliases: List<RoomAlias> = emptyList(),
@@ -73,7 +73,7 @@ fun aRoomInfo(
7373
isEncrypted = isEncrypted,
7474
joinRule = joinRule,
7575
isSpace = isSpace,
76-
tombstone = tombstone,
76+
successorRoom = successorRoom,
7777
isFavorite = isFavorite,
7878
canonicalAlias = canonicalAlias,
7979
alternativeAliases = alternativeAliases.toImmutableList(),

libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomSummaryFixture.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
1515
import io.element.android.libraries.matrix.api.room.RoomInfo
1616
import io.element.android.libraries.matrix.api.room.RoomMember
1717
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
18-
import io.element.android.libraries.matrix.api.room.RoomTombstone
18+
import io.element.android.libraries.matrix.api.room.SuccessorRoom
1919
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
2020
import io.element.android.libraries.matrix.api.room.join.JoinRule
2121
import io.element.android.libraries.matrix.api.room.message.RoomMessage
@@ -52,7 +52,7 @@ fun aRoomSummary(
5252
isEncrypted: Boolean = false,
5353
joinRule: JoinRule? = JoinRule.Public,
5454
isSpace: Boolean = false,
55-
tombstone: RoomTombstone? = null,
55+
successorRoom: SuccessorRoom? = null,
5656
isFavorite: Boolean = false,
5757
canonicalAlias: RoomAlias? = null,
5858
alternativeAliases: List<RoomAlias> = emptyList(),
@@ -88,7 +88,7 @@ fun aRoomSummary(
8888
isEncrypted = isEncrypted,
8989
joinRule = joinRule,
9090
isSpace = isSpace,
91-
tombstone = tombstone,
91+
successorRoom = successorRoom,
9292
isFavorite = isFavorite,
9393
canonicalAlias = canonicalAlias,
9494
alternativeAliases = alternativeAliases.toPersistentList(),

0 commit comments

Comments
 (0)