Merge pull request #4799 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-25.x

fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.5.29
This commit is contained in:
ganfra 2025-06-02 21:58:33 +02:00 committed by GitHub
commit 3667c4a9fa
8 changed files with 54 additions and 25 deletions

View file

@ -169,7 +169,7 @@ jsoup = "org.jsoup:jsoup:1.20.1"
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
molecule-runtime = "app.cash.molecule:molecule-runtime:2.1.0" molecule-runtime = "app.cash.molecule:molecule-runtime:2.1.0"
timber = "com.jakewharton.timber:timber:5.0.1" timber = "com.jakewharton.timber:timber:5.0.1"
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.5.26" matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.5.29"
matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" } matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" }
matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" } matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" }
sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }

View file

@ -32,7 +32,6 @@ data class RoomInfo(
val isEncrypted: Boolean?, val isEncrypted: Boolean?,
val joinRule: JoinRule?, val joinRule: JoinRule?,
val isSpace: Boolean, val isSpace: Boolean,
val tombstone: RoomTombstone?,
val isFavorite: Boolean, val isFavorite: Boolean,
val canonicalAlias: RoomAlias?, val canonicalAlias: RoomAlias?,
val alternativeAliases: ImmutableList<RoomAlias>, val alternativeAliases: ImmutableList<RoomAlias>,
@ -74,12 +73,8 @@ data class RoomInfo(
val pinnedEventIds: ImmutableList<EventId>, val pinnedEventIds: ImmutableList<EventId>,
val creator: UserId?, val creator: UserId?,
val historyVisibility: RoomHistoryVisibility, val historyVisibility: RoomHistoryVisibility,
val successorRoom: SuccessorRoom?,
) { ) {
val aliases: List<RoomAlias> val aliases: List<RoomAlias>
get() = listOfNotNull(canonicalAlias) + alternativeAliases get() = listOfNotNull(canonicalAlias) + alternativeAliases
} }
data class RoomTombstone(
val body: String,
val replacementRoomId: RoomId,
)

View file

@ -0,0 +1,30 @@
/*
* Copyright 2025 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.api.room
import io.element.android.libraries.matrix.api.core.RoomId
/**
*
* When a room A is tombstoned, it is replaced by a room B. The room A is the
* predecessor of B, and B is the successor of A. This type holds information
* about the successor room.
*
* A room is tombstoned if it has received a m.room.tombstone state event.
*
*/
data class SuccessorRoom(
/**
* The ID of the replacement room.
*/
val roomId: RoomId,
/**
* The message explaining why the room has been tombstoned.
*/
val reason: String?,
)

View file

@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.room.RoomInfo import io.element.android.libraries.matrix.api.room.RoomInfo
import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.api.room.RoomTombstone import io.element.android.libraries.matrix.api.room.SuccessorRoom
import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.impl.room.history.map import io.element.android.libraries.matrix.impl.room.history.map
import io.element.android.libraries.matrix.impl.room.join.map import io.element.android.libraries.matrix.impl.room.join.map
@ -28,6 +28,7 @@ import uniffi.matrix_sdk_base.EncryptionState
import org.matrix.rustcomponents.sdk.Membership as RustMembership import org.matrix.rustcomponents.sdk.Membership as RustMembership
import org.matrix.rustcomponents.sdk.RoomInfo as RustRoomInfo import org.matrix.rustcomponents.sdk.RoomInfo as RustRoomInfo
import org.matrix.rustcomponents.sdk.RoomNotificationMode as RustRoomNotificationMode import org.matrix.rustcomponents.sdk.RoomNotificationMode as RustRoomNotificationMode
import org.matrix.rustcomponents.sdk.SuccessorRoom as RustSuccessorRoom
class RoomInfoMapper { class RoomInfoMapper {
fun map(rustRoomInfo: RustRoomInfo): RoomInfo = rustRoomInfo.let { fun map(rustRoomInfo: RustRoomInfo): RoomInfo = rustRoomInfo.let {
@ -47,9 +48,6 @@ class RoomInfoMapper {
}, },
joinRule = it.joinRule?.map(), joinRule = it.joinRule?.map(),
isSpace = it.isSpace, isSpace = it.isSpace,
tombstone = it.tombstone?.let {
RoomTombstone(it.body, RoomId(it.replacementRoomId))
},
isFavorite = it.isFavourite, isFavorite = it.isFavourite,
canonicalAlias = it.canonicalAlias?.let(::RoomAlias), canonicalAlias = it.canonicalAlias?.let(::RoomAlias),
alternativeAliases = it.alternativeAliases.map(::RoomAlias).toImmutableList(), alternativeAliases = it.alternativeAliases.map(::RoomAlias).toImmutableList(),
@ -71,6 +69,7 @@ class RoomInfoMapper {
numUnreadMentions = it.numUnreadMentions.toLong(), numUnreadMentions = it.numUnreadMentions.toLong(),
numUnreadNotifications = it.numUnreadNotifications.toLong(), numUnreadNotifications = it.numUnreadNotifications.toLong(),
historyVisibility = it.historyVisibility.map(), historyVisibility = it.historyVisibility.map(),
successorRoom = it.successorRoom?.map(),
) )
} }
} }
@ -89,6 +88,11 @@ fun RustRoomNotificationMode.map(): RoomNotificationMode = when (this) {
RustRoomNotificationMode.MUTE -> RoomNotificationMode.MUTE RustRoomNotificationMode.MUTE -> RoomNotificationMode.MUTE
} }
fun RustSuccessorRoom.map(): SuccessorRoom = SuccessorRoom(
roomId = RoomId(roomId),
reason = reason,
)
/** /**
* Map a RoomHero to a MatrixUser. There is not need to create a RoomHero type on the application side. * Map a RoomHero to a MatrixUser. There is not need to create a RoomHero type on the application side.
*/ */

View file

@ -17,7 +17,7 @@ import org.matrix.rustcomponents.sdk.RoomHistoryVisibility
import org.matrix.rustcomponents.sdk.RoomInfo import org.matrix.rustcomponents.sdk.RoomInfo
import org.matrix.rustcomponents.sdk.RoomMember import org.matrix.rustcomponents.sdk.RoomMember
import org.matrix.rustcomponents.sdk.RoomNotificationMode import org.matrix.rustcomponents.sdk.RoomNotificationMode
import org.matrix.rustcomponents.sdk.RoomTombstoneInfo import org.matrix.rustcomponents.sdk.SuccessorRoom
import uniffi.matrix_sdk_base.EncryptionState import uniffi.matrix_sdk_base.EncryptionState
fun aRustRoomInfo( fun aRustRoomInfo(
@ -30,7 +30,6 @@ fun aRustRoomInfo(
isDirect: Boolean = false, isDirect: Boolean = false,
isPublic: Boolean = false, isPublic: Boolean = false,
isSpace: Boolean = false, isSpace: Boolean = false,
tombstone: RoomTombstoneInfo? = null,
isFavourite: Boolean = false, isFavourite: Boolean = false,
canonicalAlias: String? = null, canonicalAlias: String? = null,
alternativeAliases: List<String> = listOf(), alternativeAliases: List<String> = listOf(),
@ -54,6 +53,7 @@ fun aRustRoomInfo(
roomCreator: UserId? = null, roomCreator: UserId? = null,
joinRule: JoinRule? = null, joinRule: JoinRule? = null,
historyVisibility: RoomHistoryVisibility = RoomHistoryVisibility.Joined, historyVisibility: RoomHistoryVisibility = RoomHistoryVisibility.Joined,
successorRoom: SuccessorRoom? = null,
) = RoomInfo( ) = RoomInfo(
id = id, id = id,
displayName = displayName, displayName = displayName,
@ -64,7 +64,6 @@ fun aRustRoomInfo(
isDirect = isDirect, isDirect = isDirect,
isPublic = isPublic, isPublic = isPublic,
isSpace = isSpace, isSpace = isSpace,
tombstone = tombstone,
isFavourite = isFavourite, isFavourite = isFavourite,
canonicalAlias = canonicalAlias, canonicalAlias = canonicalAlias,
alternativeAliases = alternativeAliases, alternativeAliases = alternativeAliases,
@ -87,5 +86,6 @@ fun aRustRoomInfo(
pinnedEventIds = pinnedEventIds, pinnedEventIds = pinnedEventIds,
creator = roomCreator?.value, creator = roomCreator?.value,
joinRule = joinRule, joinRule = joinRule,
historyVisibility = historyVisibility historyVisibility = historyVisibility,
successorRoom = successorRoom,
) )

View file

@ -54,7 +54,7 @@ class RoomInfoMapperTest {
isPublic = false, isPublic = false,
isSpace = false, isSpace = false,
joinRule = RustJoinRule.Invite, joinRule = RustJoinRule.Invite,
tombstone = null, successorRoom = null,
isFavourite = false, isFavourite = false,
canonicalAlias = A_ROOM_ALIAS.value, canonicalAlias = A_ROOM_ALIAS.value,
alternativeAliases = listOf(A_ROOM_ALIAS.value), alternativeAliases = listOf(A_ROOM_ALIAS.value),
@ -90,7 +90,6 @@ class RoomInfoMapperTest {
isDirect = true, isDirect = true,
isEncrypted = true, isEncrypted = true,
isSpace = false, isSpace = false,
tombstone = null,
isFavorite = false, isFavorite = false,
joinRule = JoinRule.Invite, joinRule = JoinRule.Invite,
canonicalAlias = A_ROOM_ALIAS, canonicalAlias = A_ROOM_ALIAS,
@ -120,6 +119,7 @@ class RoomInfoMapperTest {
numUnreadNotifications = 13L, numUnreadNotifications = 13L,
numUnreadMentions = 14L, numUnreadMentions = 14L,
historyVisibility = RoomHistoryVisibility.Joined, historyVisibility = RoomHistoryVisibility.Joined,
successorRoom = null
) )
) )
} }
@ -139,7 +139,7 @@ class RoomInfoMapperTest {
isPublic = true, isPublic = true,
joinRule = null, joinRule = null,
isSpace = false, isSpace = false,
tombstone = null, successorRoom = null,
isFavourite = true, isFavourite = true,
canonicalAlias = null, canonicalAlias = null,
alternativeAliases = emptyList(), alternativeAliases = emptyList(),
@ -175,7 +175,7 @@ class RoomInfoMapperTest {
isDirect = false, isDirect = false,
joinRule = null, joinRule = null,
isSpace = false, isSpace = false,
tombstone = null, successorRoom = null,
isFavorite = true, isFavorite = true,
canonicalAlias = null, canonicalAlias = null,
alternativeAliases = emptyList<RoomAlias>().toPersistentList(), alternativeAliases = emptyList<RoomAlias>().toPersistentList(),

View file

@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.room.RoomInfo import io.element.android.libraries.matrix.api.room.RoomInfo
import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomMember
import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.api.room.RoomTombstone import io.element.android.libraries.matrix.api.room.SuccessorRoom
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
import io.element.android.libraries.matrix.api.room.join.JoinRule import io.element.android.libraries.matrix.api.room.join.JoinRule
import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.api.user.MatrixUser
@ -39,7 +39,7 @@ fun aRoomInfo(
isEncrypted: Boolean = false, isEncrypted: Boolean = false,
joinRule: JoinRule? = JoinRule.Public, joinRule: JoinRule? = JoinRule.Public,
isSpace: Boolean = false, isSpace: Boolean = false,
tombstone: RoomTombstone? = null, successorRoom: SuccessorRoom? = null,
isFavorite: Boolean = false, isFavorite: Boolean = false,
canonicalAlias: RoomAlias? = null, canonicalAlias: RoomAlias? = null,
alternativeAliases: List<RoomAlias> = emptyList(), alternativeAliases: List<RoomAlias> = emptyList(),
@ -73,7 +73,7 @@ fun aRoomInfo(
isEncrypted = isEncrypted, isEncrypted = isEncrypted,
joinRule = joinRule, joinRule = joinRule,
isSpace = isSpace, isSpace = isSpace,
tombstone = tombstone, successorRoom = successorRoom,
isFavorite = isFavorite, isFavorite = isFavorite,
canonicalAlias = canonicalAlias, canonicalAlias = canonicalAlias,
alternativeAliases = alternativeAliases.toImmutableList(), alternativeAliases = alternativeAliases.toImmutableList(),

View file

@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.room.RoomInfo import io.element.android.libraries.matrix.api.room.RoomInfo
import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomMember
import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.api.room.RoomTombstone import io.element.android.libraries.matrix.api.room.SuccessorRoom
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
import io.element.android.libraries.matrix.api.room.join.JoinRule import io.element.android.libraries.matrix.api.room.join.JoinRule
import io.element.android.libraries.matrix.api.room.message.RoomMessage import io.element.android.libraries.matrix.api.room.message.RoomMessage
@ -52,7 +52,7 @@ fun aRoomSummary(
isEncrypted: Boolean = false, isEncrypted: Boolean = false,
joinRule: JoinRule? = JoinRule.Public, joinRule: JoinRule? = JoinRule.Public,
isSpace: Boolean = false, isSpace: Boolean = false,
tombstone: RoomTombstone? = null, successorRoom: SuccessorRoom? = null,
isFavorite: Boolean = false, isFavorite: Boolean = false,
canonicalAlias: RoomAlias? = null, canonicalAlias: RoomAlias? = null,
alternativeAliases: List<RoomAlias> = emptyList(), alternativeAliases: List<RoomAlias> = emptyList(),
@ -88,7 +88,7 @@ fun aRoomSummary(
isEncrypted = isEncrypted, isEncrypted = isEncrypted,
joinRule = joinRule, joinRule = joinRule,
isSpace = isSpace, isSpace = isSpace,
tombstone = tombstone, successorRoom = successorRoom,
isFavorite = isFavorite, isFavorite = isFavorite,
canonicalAlias = canonicalAlias, canonicalAlias = canonicalAlias,
alternativeAliases = alternativeAliases.toPersistentList(), alternativeAliases = alternativeAliases.toPersistentList(),