From f06b2290ead17a4ffdd3af6abfc3368eca356aa3 Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 27 Aug 2024 17:45:32 +0200 Subject: [PATCH] Rust sdk : handle the remaining changes --- .../libraries/matrix/api/notification/NotificationData.kt | 7 ++++++- .../libraries/matrix/impl/RustMatrixClientFactory.kt | 3 ++- .../TimelineEventToNotificationContentMapper.kt | 2 +- .../libraries/matrix/impl/room/MatrixRoomInfoMapper.kt | 2 +- .../matrix/impl/roomlist/RoomSummaryDetailsFactory.kt | 2 +- .../impl/notifications/DefaultNotifiableEventResolver.kt | 2 +- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt index 1696375bcb..74bd2d8e14 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt @@ -53,6 +53,7 @@ sealed interface NotificationContent { data class CallInvite( val senderId: UserId, ) : MessageLike + data class CallNotify( val senderId: UserId, val type: CallNotifyType, @@ -77,7 +78,11 @@ sealed interface NotificationContent { val messageType: MessageType ) : MessageLike - data object RoomRedaction : MessageLike + data class RoomRedaction( + val redactedEventId: String?, + val reason: String? + ) : MessageLike + data object Sticker : MessageLike data class Poll( val senderId: UserId, diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt index 51e71f3855..a3304dc5bf 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt @@ -93,7 +93,8 @@ class RustMatrixClientFactory @Inject constructor( slidingSync: ClientBuilderSlidingSync, ): ClientBuilder { return ClientBuilder() - .sessionPath(sessionPath) + // TODO SDK claims it's valid to use the same path for data and cache, but would be better to use different paths + .sessionPaths(dataPath = sessionPath, cachePath = sessionPath) .passphrase(passphrase) .slidingSyncProxy(slidingSyncProxy) .userAgent(userAgentProvider.provide()) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt index 4591a2ef52..fa0b6365f3 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt @@ -94,7 +94,7 @@ private fun MessageLikeEventContent.toContent(senderId: UserId): NotificationCon is MessageLikeEventContent.RoomMessage -> { NotificationContent.MessageLike.RoomMessage(senderId, EventMessageMapper().mapMessageType(messageType)) } - MessageLikeEventContent.RoomRedaction -> NotificationContent.MessageLike.RoomRedaction + is MessageLikeEventContent.RoomRedaction -> NotificationContent.MessageLike.RoomRedaction(redactedEventId = redactedEventId, reason = reason) MessageLikeEventContent.Sticker -> NotificationContent.MessageLike.Sticker is MessageLikeEventContent.Poll -> NotificationContent.MessageLike.Poll(senderId, question) } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt index a7461d6b0a..b53b7629fd 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt @@ -56,7 +56,7 @@ class MatrixRoomInfoMapper { userPowerLevels = mapPowerLevels(it.userPowerLevels), highlightCount = it.highlightCount.toLong(), notificationCount = it.notificationCount.toLong(), - userDefinedNotificationMode = it.userDefinedNotificationMode?.map(), + userDefinedNotificationMode = it.cachedUserDefinedNotificationMode?.map(), hasRoomCall = it.hasRoomCall, activeRoomCallParticipants = it.activeRoomCallParticipants.toImmutableList(), heroes = it.elementHeroes().toImmutableList(), diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt index 9c67eb1221..8f0863ec2c 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt @@ -47,7 +47,7 @@ class RoomSummaryDetailsFactory(private val roomMessageFactory: RoomMessageFacto isMarkedUnread = roomInfo.isMarkedUnread, lastMessage = latestRoomMessage, inviter = roomInfo.inviter?.let(RoomMemberMapper::map), - userDefinedNotificationMode = roomInfo.userDefinedNotificationMode?.let(RoomNotificationSettingsMapper::mapMode), + userDefinedNotificationMode = roomInfo.cachedUserDefinedNotificationMode?.let(RoomNotificationSettingsMapper::mapMode), hasRoomCall = roomInfo.hasRoomCall, isDm = isDm(isDirect = roomInfo.isDirect, activeMembersCount = roomInfo.activeMembersCount.toInt()), isFavorite = roomInfo.isFavourite, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt index 953215feb2..ef97dbf002 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt @@ -204,7 +204,7 @@ class DefaultNotifiableEventResolver @Inject constructor( NotificationContent.MessageLike.RoomEncrypted -> fallbackNotifiableEvent(userId, roomId, eventId).also { Timber.tag(loggerTag.value).w("Notification with encrypted content -> fallback") } - NotificationContent.MessageLike.RoomRedaction -> null.also { + is NotificationContent.MessageLike.RoomRedaction -> null.also { Timber.tag(loggerTag.value).d("Ignoring notification for redaction") } NotificationContent.MessageLike.Sticker -> null.also {