Use the room heroes when computing a DM avatar. (#2900)

* Use room heroes for DM avatar content ID.

* Use RoomAvatar.heroes for the DM Details stack.
This commit is contained in:
Doug
2024-06-19 11:27:10 +01:00
committed by GitHub
parent 17d96b0f4b
commit 834260c144
55 changed files with 524 additions and 198 deletions
@@ -41,5 +41,5 @@ struct GlobalSearchRoom: Identifiable, Equatable {
let id: String
let name: String
let alias: String?
let avatarURL: URL?
let avatar: RoomAvatar
}
@@ -81,7 +81,7 @@ class GlobalSearchScreenViewModel: GlobalSearchScreenViewModelType, GlobalSearch
return GlobalSearchRoom(id: details.id,
name: details.name,
alias: details.canonicalAlias,
avatarURL: details.avatarURL)
avatar: details.avatar)
}
}
}
@@ -35,11 +35,9 @@ struct GlobalSearchScreenListRow: View {
@ViewBuilder @MainActor
var avatar: some View {
if dynamicTypeSize < .accessibility3 {
LoadableAvatarImage(url: room.avatarURL,
name: room.name,
contentID: room.id,
avatarSize: .room(on: .messageForwarding),
imageProvider: context.imageProvider)
RoomAvatarImage(avatar: room.avatar,
avatarSize: .room(on: .messageForwarding),
imageProvider: context.imageProvider)
.dynamicTypeSize(dynamicTypeSize < .accessibility1 ? dynamicTypeSize : .accessibility1)
.accessibilityHidden(true)
}
@@ -55,7 +53,9 @@ struct GlobalSearchScreenListRow_Previews: PreviewProvider, TestablePreview {
GlobalSearchScreenListRow(room: .init(id: "123",
name: "Tech central",
alias: "The best place in the whole wide world",
avatarURL: .picturesDirectory),
avatar: .room(id: "123",
name: "Tech central",
avatarURL: .picturesDirectory)),
context: viewModel.context)
}
}