Bump the RustSDK to v26.02.03 (#5051)

Bump the RustSDK to v26.02.03
Fix breaking changes and add support for the new background task error reporting delegate and the new room invite latest event.
This commit is contained in:
Stefan Ceriu
2026-02-06 12:08:44 +02:00
committed by GitHub
parent 26060dde3a
commit 61763d9893
9 changed files with 56 additions and 29 deletions
@@ -88,7 +88,7 @@ class JoinedRoomProxy: JoinedRoomProxyProtocol {
let openRoomSpan = analyticsService.signpost.addSpan(.timelineLoad, toTransaction: .openRoom)
timeline = try await TimelineProxy(timeline: room.timelineWithConfiguration(configuration: .init(focus: .live(hideThreadedEvents: appSettings.threadsEnabled),
filter: .eventTypeFilter(filter: excludedEventsFilter),
filter: .eventFilter(filter: excludedEventsFilter),
internalIdPrefix: nil,
dateDividerMode: .daily,
trackReadReceipts: .messageLikeEvents,
@@ -154,7 +154,7 @@ class JoinedRoomProxy: JoinedRoomProxyProtocol {
let openRoomSpan = analyticsService.signpost.addSpan(.timelineLoad, toTransaction: .notificationToMessage)
let sdkTimeline = try await room.timelineWithConfiguration(configuration: .init(focus: .event(eventId: eventID,
numContextEvents: numberOfEvents,
hideThreadedEvents: appSettings.threadsEnabled),
threadMode: .automatic(hideThreadedEvents: appSettings.threadsEnabled)),
filter: .all,
internalIdPrefix: UUID().uuidString,
dateDividerMode: .daily,
@@ -216,7 +216,7 @@ class JoinedRoomProxy: JoinedRoomProxyProtocol {
do {
let rustFocus: MatrixRustSDK.TimelineFocus = switch focus {
case .live: .live(hideThreadedEvents: false)
case .eventID(let eventID): .event(eventId: eventID, numContextEvents: 100, hideThreadedEvents: false)
case .eventID(let eventID): .event(eventId: eventID, numContextEvents: 100, threadMode: .automatic(hideThreadedEvents: false))
case .thread(let eventID): .thread(rootEventId: eventID)
case .pinned: .pinnedEvents(maxEventsToLoad: 100, maxConcurrentRequests: 10)
}
@@ -792,7 +792,7 @@ class JoinedRoomProxy: JoinedRoomProxyProtocol {
}
}
private let excludedEventsFilter: TimelineEventTypeFilter = {
private let excludedEventsFilter: TimelineEventFilter = {
var stateEventFilters: [StateEventType] = [.roomAliases,
.roomCanonicalAlias,
.roomGuestAccess,
@@ -807,6 +807,7 @@ class JoinedRoomProxy: JoinedRoomProxyProtocol {
.policyRuleRoom,
.policyRuleServer,
.policyRuleUser]
return .exclude(eventTypes: stateEventFilters.map { FilterTimelineEventType.state(eventType: $0) })
return .excludeEventTypes(eventTypes: stateEventFilters.map { FilterTimelineEventType.state(eventType: $0) })
}()
}
@@ -289,6 +289,15 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol {
let sender = TimelineItemSender(senderID: senderID, senderProfile: profile)
attributedLastMessage = eventStringBuilder.buildAttributedString(for: content, sender: sender, isOutgoing: isOwn)
lastMessageDate = Date(timeIntervalSince1970: TimeInterval(timestamp / 1000))
case .remoteInvite(let timestamp, let senderID, let profile):
lastMessageDate = Date(timeIntervalSince1970: TimeInterval(timestamp / 1000))
if let senderID {
let sender = TimelineItemSender(senderID: senderID, senderProfile: profile)
let senderDisplayName = sender.displayName ?? sender.id
let invitedYouString = eventStringBuilder.stateEventStringBuilder.buildInvitedYouString(senderDisplayName)
attributedLastMessage = AttributedString(invitedYouString)
}
case .none:
break
}