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
@@ -44,11 +44,9 @@ struct RoomDirectorySearchCell: View {
}
private var avatar: some View {
LoadableAvatarImage(url: result.avatarURL,
name: result.name,
contentID: result.id,
avatarSize: .room(on: .roomDirectorySearch),
imageProvider: imageProvider)
RoomAvatarImage(avatar: result.avatar,
avatarSize: .room(on: .roomDirectorySearch),
imageProvider: imageProvider)
.accessibilityHidden(true)
}
}
@@ -62,7 +60,9 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: "#test:example.com",
name: "Test title",
topic: "test description",
avatarURL: nil,
avatar: .room(id: "!test_id_1:matrix.org",
name: "Test title",
avatarURL: nil),
canBeJoined: true),
imageProvider: MockMediaProvider()) { }
@@ -70,7 +70,9 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: "#test:example.com",
name: nil,
topic: "test description",
avatarURL: nil,
avatar: .room(id: "!test_id_2:matrix.org",
name: nil,
avatarURL: nil),
canBeJoined: true),
imageProvider: MockMediaProvider()) { }
@@ -78,7 +80,9 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: "#test_no_topic:example.com",
name: "Test title no topic",
topic: nil,
avatarURL: nil,
avatar: .room(id: "!test_id_3:example.com",
name: "Test title no topic",
avatarURL: nil),
canBeJoined: true),
imageProvider: MockMediaProvider()) { }
@@ -86,7 +90,9 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: "#test_no_topic:example.com",
name: nil,
topic: nil,
avatarURL: nil,
avatar: .room(id: "!test_id_4:example.com",
name: nil,
avatarURL: nil),
canBeJoined: true),
imageProvider: MockMediaProvider()) { }
@@ -94,7 +100,9 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: nil,
name: "Test title no alias",
topic: nil,
avatarURL: nil,
avatar: .room(id: "!test_id_5:example.com",
name: "Test title no alias",
avatarURL: nil),
canBeJoined: false),
imageProvider: MockMediaProvider()) { }
@@ -102,7 +110,9 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: nil,
name: "Test title no alias",
topic: "Topic",
avatarURL: nil,
avatar: .room(id: "!test_id_6:example.com",
name: "Test title no alias",
avatarURL: nil),
canBeJoined: false),
imageProvider: MockMediaProvider()) { }
@@ -110,15 +120,18 @@ struct RoomDirectorySearchCell_Previews: PreviewProvider, TestablePreview {
alias: nil,
name: nil,
topic: "Topic",
avatarURL: nil,
avatar: .room(id: "!test_id_7:example.com",
name: nil,
avatarURL: nil),
canBeJoined: false),
imageProvider: MockMediaProvider()) { }
RoomDirectorySearchCell(result: .init(id: "!test_id_8:example.com",
alias: nil,
name: nil,
topic: nil,
avatarURL: nil,
avatar: .room(id: "!test_id_8:example.com",
name: nil,
avatarURL: nil),
canBeJoined: false),
imageProvider: MockMediaProvider()) { }
}
@@ -83,13 +83,17 @@ struct RoomDirectorySearchScreen_Previews: PreviewProvider, TestablePreview {
alias: "#test_1:example.com",
name: "Test 1",
topic: "Test description 1",
avatarURL: nil,
avatar: .room(id: "test_1",
name: "Test 1",
avatarURL: nil),
canBeJoined: true),
RoomDirectorySearchResult(id: "test_2",
alias: "#test_2:example.com",
name: "Test 2",
topic: nil,
avatarURL: URL.documentsDirectory,
avatar: .room(id: "test_2",
name: "Test 2",
avatarURL: .documentsDirectory),
canBeJoined: false)]
let roomDirectorySearchProxy = RoomDirectorySearchProxyMock(configuration: .init(results: results))