Update the SDK and handle API breaks. (#5871)

* Update the SDK and handle API breaks.

* Rename sdkUserThing to rustUserThing for consistency.

* Add user status ClientProxy methods.

* Rename UserStatus.UserSet to UserStatus.Raw.
This commit is contained in:
Doug
2026-07-14 16:35:37 +01:00
committed by GitHub
parent f776ea7133
commit 85f28d017d
17 changed files with 278 additions and 54 deletions
@@ -291,7 +291,11 @@ private extension TimelineItemProxy {
threadRoot: nil,
threadSummary: nil))
let configuration = EventTimelineItemSDKMockConfiguration(sender: "@\(sender.lowercased()):matrix.org",
senderProfile: .ready(displayName: sender, displayNameAmbiguous: false, avatarUrl: nil),
senderProfile: .ready(displayName: sender,
displayNameAmbiguous: false,
avatarUrl: nil,
status: nil,
call: nil),
isOwn: isOwn,
canBeRepliedTo: true,
content: content)
@@ -19,7 +19,7 @@ nonisolated struct TimelineItemKeyForwarder: Identifiable, Hashable {
init(forwarderID: String, forwarderProfile: ProfileDetails) {
switch forwarderProfile {
case let .ready(displayName, _, _):
case let .ready(displayName, _, _, _, _):
self.init(id: forwarderID,
displayName: displayName)
default:
@@ -32,11 +32,12 @@ nonisolated struct TimelineItemSender: Identifiable, Hashable {
init(senderID: String, senderProfile: ProfileDetails) {
switch senderProfile {
case let .ready(displayName, isDisplayNameAmbiguous, avatarUrl):
case let .ready(displayName, isDisplayNameAmbiguous, avatarURL, status, call):
self.init(id: senderID,
displayName: displayName,
isDisplayNameAmbiguous: isDisplayNameAmbiguous,
avatarURL: avatarUrl.flatMap(URL.init(string:)))
avatarURL: avatarURL.flatMap(URL.init(string:)),
status: .init(rustStatus: status, rustCall: call))
default:
self.init(id: senderID,
displayName: nil,
@@ -71,7 +71,7 @@ nonisolated struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
isOutgoing: isOutgoing)
case .callInvite:
return buildCallInviteTimelineItem(for: eventItemProxy)
case .rtcNotification(let callIntent, let declinedBy):
case .rtcNotification(let callIntent, let declinedBy, _, _, _):
return buildCallNotificationTimelineItem(for: eventItemProxy, isDM: isDM, callIntent: callIntent, declinedBy: declinedBy)
}
}