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
@@ -135,12 +135,9 @@ private struct MediaPreviewViewController: UIViewControllerRepresentable {
// MARK: - Previews
struct TimelineMediaPreviewModifier_Previews: PreviewProvider {
static let viewModel = makeViewModel(mediaProvider: mediaProvider)
static let mediaProvider = MediaProviderMock(.init())
static let downloadingViewModel = makeViewModel(isDownloading: true, mediaProvider: downloadingMediaProvider)
static let downloadingMediaProvider = MediaProviderMock(.init())
static let downloadErrorViewModel = makeViewModel(isDownloadError: true, mediaProvider: downloadErrorMediaProvider)
static let downloadErrorMediaProvider = MediaProviderMock(.init())
static let viewModel = makeViewModel()
static let downloadingViewModel = makeViewModel(isDownloading: true)
static let downloadErrorViewModel = makeViewModel(isDownloadError: true)
static var previews: some View {
MediaPreviewViewController(viewModel: viewModel, dismissalPublisher: .init()) { }
@@ -151,7 +148,7 @@ struct TimelineMediaPreviewModifier_Previews: PreviewProvider {
.previewDisplayName("Download Error")
}
static func makeViewModel(isDownloading: Bool = false, isDownloadError: Bool = false, mediaProvider: MediaProviderMock) -> TimelineMediaPreviewViewModel {
static func makeViewModel(isDownloading: Bool = false, isDownloadError: Bool = false) -> TimelineMediaPreviewViewModel {
let item = FileRoomTimelineItem(id: .randomEvent,
timestamp: .mock,
isOutgoing: false,
@@ -168,6 +165,8 @@ struct TimelineMediaPreviewModifier_Previews: PreviewProvider {
let timelineController = MockTimelineController(timelineKind: .media(.mediaFilesScreen))
timelineController.timelineItems = [item]
let mediaProvider = MediaProviderMock(configuration: .init())
if isDownloading {
mediaProvider.loadFileFromSourceFilenameClosure = { _, _ in
try? await Task.sleep(for: .seconds(3600))