Use local room list sorting from Rust. (#2978)

* Switch to the new local room list sorting API

* Get rid of the RoomSummary enum, replace it by the inner RoomSummaryDetails

* And finally, rename RoomSummaryDetails to RoomSummary

* Fix a bunch of warnings

* Small tidy up post rebase/review.

- Remove unused invalidated property.
- Rename some RoomSummary instances to summary instead of details.
- Fix tests with missing roomListItem's.

* Update snapshots

---------

Co-authored-by: Doug <douglase@element.io>
This commit is contained in:
Stefan Ceriu
2024-07-05 12:10:53 +03:00
committed by GitHub
parent c024702d50
commit d71c8c4e83
26 changed files with 556 additions and 608 deletions
@@ -207,25 +207,26 @@ private extension HomeScreenRoom {
inviter.displayName = "Jack"
inviter.userID = "@jack:somewhere.com"
let details = RoomSummaryDetails(id: "@someone:somewhere.com",
isInvite: false,
inviter: inviter,
name: "Some Guy",
isDirect: true,
avatarURL: nil,
heroes: [.init(userID: "@someone:somewhere.com")],
lastMessage: nil,
lastMessageFormattedTimestamp: nil,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
unreadNotificationsCount: 0,
notificationMode: nil,
canonicalAlias: "#footest:somewhere.org",
hasOngoingCall: false,
isMarkedUnread: false,
isFavourite: false)
let summary = RoomSummary(roomListItem: RoomListItemSDKMock(),
id: "@someone:somewhere.com",
isInvite: false,
inviter: inviter,
name: "Some Guy",
isDirect: true,
avatarURL: nil,
heroes: [.init(userID: "@someone:somewhere.com")],
lastMessage: nil,
lastMessageFormattedTimestamp: nil,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
unreadNotificationsCount: 0,
notificationMode: nil,
canonicalAlias: "#footest:somewhere.org",
hasOngoingCall: false,
isMarkedUnread: false,
isFavourite: false)
return .init(details: details, invalidated: false, hideUnreadMessagesBadge: false)
return .init(summary: summary, hideUnreadMessagesBadge: false)
}
static func roomInvite(alias: String? = nil, avatarURL: URL? = nil) -> HomeScreenRoom {
@@ -234,24 +235,25 @@ private extension HomeScreenRoom {
inviter.userID = "@jack:somewhi.nl"
inviter.avatarURL = avatarURL
let details = RoomSummaryDetails(id: "@someone:somewhere.com",
isInvite: false,
inviter: inviter,
name: "Awesome Room",
isDirect: false,
avatarURL: avatarURL,
heroes: [.init(userID: "@someone:somewhere.com")],
lastMessage: nil,
lastMessageFormattedTimestamp: nil,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
unreadNotificationsCount: 0,
notificationMode: nil,
canonicalAlias: alias,
hasOngoingCall: false,
isMarkedUnread: false,
isFavourite: false)
let summary = RoomSummary(roomListItem: RoomListItemSDKMock(),
id: "@someone:somewhere.com",
isInvite: false,
inviter: inviter,
name: "Awesome Room",
isDirect: false,
avatarURL: avatarURL,
heroes: [.init(userID: "@someone:somewhere.com")],
lastMessage: nil,
lastMessageFormattedTimestamp: nil,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
unreadNotificationsCount: 0,
notificationMode: nil,
canonicalAlias: alias,
hasOngoingCall: false,
isMarkedUnread: false,
isFavourite: false)
return .init(details: details, invalidated: false, hideUnreadMessagesBadge: false)
return .init(summary: summary, hideUnreadMessagesBadge: false)
}
}
@@ -195,14 +195,7 @@ struct HomeScreenRoomCell_Previews: PreviewProvider, TestablePreview {
}()
static func mockRoom(summary: RoomSummary) -> HomeScreenRoom? {
switch summary {
case .empty:
nil
case .invalidated(let details):
HomeScreenRoom(details: details, invalidated: true, hideUnreadMessagesBadge: false)
case .filled(let details):
HomeScreenRoom(details: details, invalidated: false, hideUnreadMessagesBadge: false)
}
HomeScreenRoom(summary: summary, hideUnreadMessagesBadge: false)
}
static var previews: some View {