Revert weak media provider (#4483)

* Revert "Address the real lifetime issue of the SDK's `Client` by making `Context.mediaProvider` weak. (#4466)"

This reverts commit c794144ef1.

* Better docs.
This commit is contained in:
Doug
2025-09-08 17:48:58 +01:00
committed by GitHub
parent 90504d89c8
commit 2f2e6f6226
58 changed files with 161 additions and 380 deletions
@@ -234,7 +234,7 @@ struct AvatarHeaderView_Previews: PreviewProvider, TestablePreview {
isPublic: true,
isDirect: false),
avatarSize: .room(on: .details),
mediaProvider: .mock) {
mediaProvider: MediaProviderMock(configuration: .init())) {
HStack(spacing: 32) {
ShareLink(item: "test") {
CompoundIcon(\.shareIos)
@@ -248,7 +248,7 @@ struct AvatarHeaderView_Previews: PreviewProvider, TestablePreview {
Form {
AvatarHeaderView(accountOwner: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockMe), dmRecipient: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockAlice),
mediaProvider: .mock) {
mediaProvider: MediaProviderMock(configuration: .init())) {
HStack(spacing: 32) {
ShareLink(item: "test") {
CompoundIcon(\.shareIos)
@@ -263,16 +263,16 @@ struct AvatarHeaderView_Previews: PreviewProvider, TestablePreview {
VStack(spacing: 16) {
AvatarHeaderView(member: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockAlice),
avatarSize: .room(on: .details),
mediaProvider: .mock) { Text("") }
mediaProvider: MediaProviderMock(configuration: .init())) { Text("") }
AvatarHeaderView(member: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockBob),
isVerified: true,
avatarSize: .room(on: .details),
mediaProvider: .mock) { Text("") }
mediaProvider: MediaProviderMock(configuration: .init())) { Text("") }
AvatarHeaderView(member: RoomMemberDetails(withProxy: RoomMemberProxyMock.mockBanned[3]),
avatarSize: .room(on: .details),
mediaProvider: .mock) { Text("") }
mediaProvider: MediaProviderMock(configuration: .init())) { Text("") }
}
.padding()
.background(Color.compound.bgSubtleSecondaryLevel0)
@@ -396,7 +396,7 @@ struct LoadableImage_Previews: PreviewProvider, TestablePreview {
}
static func makeMediaProvider(isLoading: Bool = false) -> MediaProviderProtocol {
let mediaProvider = MediaProviderMock(.init())
let mediaProvider = MediaProviderMock(configuration: .init())
if isLoading {
mediaProvider.imageFromSourceSizeClosure = { _, _ in nil }
@@ -133,27 +133,27 @@ struct RoomAvatarImage_Previews: PreviewProvider, TestablePreview {
name: "Room",
avatarURL: nil),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomAvatarImage(avatar: .room(id: "!2:server.com",
name: "Room",
avatarURL: .mockMXCAvatar),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomAvatarImage(avatar: .space(id: "!space:server.com",
name: "Room",
avatarURL: nil),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomAvatarImage(avatar: .space(id: "!otherspace:server.com",
name: "Room",
avatarURL: .mockMXCAvatar),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomAvatarImage(avatar: .tombstoned, avatarSize: .room(on: .chats), mediaProvider: .mock)
RoomAvatarImage(avatar: .tombstoned, avatarSize: .room(on: .chats), mediaProvider: MediaProviderMock(configuration: .init()))
}
HStack(spacing: 12) {
@@ -161,18 +161,18 @@ struct RoomAvatarImage_Previews: PreviewProvider, TestablePreview {
displayName: "User",
avatarURL: nil)]),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomAvatarImage(avatar: .heroes([.init(userID: "@user:server.com",
displayName: "User",
avatarURL: .mockMXCAvatar)]),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomAvatarImage(avatar: .heroes([.init(userID: "@alice:server.com", displayName: "Alice", avatarURL: nil),
.init(userID: "@bob:server.net", displayName: "Bob", avatarURL: nil)]),
avatarSize: .room(on: .chats),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
}
}
}
@@ -75,7 +75,7 @@ struct RoomHeaderView_Previews: PreviewProvider, TestablePreview {
name: "Some Room Name",
avatarURL: avatarURL),
dmRecipientVerificationState: verificationState,
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
.padding()
}
}
@@ -63,13 +63,13 @@ struct RoomInviterLabel_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack(spacing: 10) {
RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockAlice),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockDan),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockNoName),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
RoomInviterLabel(inviter: .init(member: RoomMemberProxyMock.mockCharlie),
mediaProvider: .mock)
mediaProvider: MediaProviderMock(configuration: .init()))
.foregroundStyle(.compound.textPrimary)
}
.font(.compound.bodyMD)
@@ -54,13 +54,13 @@ struct StackedAvatarsView_Previews: PreviewProvider, TestablePreview {
lineWidth: 2,
avatars: avatars,
avatarSize: .user(on: .knockingUsersBannerStack),
mediaProvider: .mock)
mediaProvider: MediaProviderMock())
StackedAvatarsView(overlap: 16,
lineWidth: 2,
shouldStackFromLast: true,
avatars: avatars,
avatarSize: .user(on: .knockingUsersBannerStack),
mediaProvider: .mock)
mediaProvider: MediaProviderMock())
}
}
}
@@ -65,21 +65,21 @@ struct UserProfileCell_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
Form {
UserProfileListRow(user: .mockAlice, membership: nil, mediaProvider: .mock,
UserProfileListRow(user: .mockAlice, membership: nil, mediaProvider: MediaProviderMock(configuration: .init()),
kind: .multiSelection(isSelected: true, action: action))
UserProfileListRow(user: .mockBob, membership: nil, mediaProvider: .mock,
UserProfileListRow(user: .mockBob, membership: nil, mediaProvider: MediaProviderMock(configuration: .init()),
kind: .multiSelection(isSelected: false, action: action))
UserProfileListRow(user: .mockCharlie, membership: .join, mediaProvider: .mock,
UserProfileListRow(user: .mockCharlie, membership: .join, mediaProvider: MediaProviderMock(configuration: .init()),
kind: .multiSelection(isSelected: true, action: action))
.disabled(true)
UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: .join, mediaProvider: .mock,
UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: .join, mediaProvider: MediaProviderMock(configuration: .init()),
kind: .multiSelection(isSelected: false, action: action))
.disabled(true)
UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: nil, mediaProvider: .mock,
UserProfileListRow(user: .init(userID: "@someone:matrix.org"), membership: nil, mediaProvider: MediaProviderMock(configuration: .init()),
kind: .multiSelection(isSelected: false, action: action))
}
.compoundList()