diff --git a/ElementX/Sources/Services/Client/ClientProxy.swift b/ElementX/Sources/Services/Client/ClientProxy.swift index ac9648d8d..cba100233 100644 --- a/ElementX/Sources/Services/Client/ClientProxy.swift +++ b/ElementX/Sources/Services/Client/ClientProxy.swift @@ -404,10 +404,6 @@ class ClientProxy: ClientProxyProtocol { } extension ClientProxy: MediaLoaderProtocol { - func mediaSourceForURL(_ url: URL) async -> MediaSourceProxy { - await mediaLoader.mediaSourceForURL(url) - } - func loadMediaContentForSource(_ source: MediaSourceProxy) async throws -> Data { try await mediaLoader.loadMediaContentForSource(source) } diff --git a/ElementX/Sources/Services/Client/MockClientProxy.swift b/ElementX/Sources/Services/Client/MockClientProxy.swift index d672ed449..a0af26166 100644 --- a/ElementX/Sources/Services/Client/MockClientProxy.swift +++ b/ElementX/Sources/Services/Client/MockClientProxy.swift @@ -69,10 +69,6 @@ class MockClientProxy: ClientProxyProtocol { .failure(.failedSettingAccountData) } - func mediaSourceForURL(_ url: URL) -> MediaSourceProxy { - .init(url: url) - } - func loadMediaContentForSource(_ source: MediaSourceProxy) async throws -> Data { throw ClientProxyError.failedLoadingMedia } diff --git a/ElementX/Sources/Services/Media/ImageProviderProtocol.swift b/ElementX/Sources/Services/Media/ImageProviderProtocol.swift index ec172dd05..f7b176146 100644 --- a/ElementX/Sources/Services/Media/ImageProviderProtocol.swift +++ b/ElementX/Sources/Services/Media/ImageProviderProtocol.swift @@ -20,10 +20,6 @@ protocol ImageProviderProtocol { func imageFromSource(_ source: MediaSourceProxy?, size: CGSize?) -> UIImage? @discardableResult func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result - - func imageFromURL(_ url: URL?, size: CGSize?) -> UIImage? - - @discardableResult func loadImageFromURL(_ url: URL, size: CGSize?) async -> Result } extension ImageProviderProtocol { @@ -34,12 +30,4 @@ extension ImageProviderProtocol { @discardableResult func loadImageFromSource(_ source: MediaSourceProxy) async -> Result { await loadImageFromSource(source, size: nil) } - - func imageFromURL(_ url: URL?) -> UIImage? { - imageFromURL(url, size: nil) - } - - @discardableResult func loadImageFromURL(_ url: URL) async -> Result { - await loadImageFromURL(url, size: nil) - } } diff --git a/ElementX/Sources/Services/Media/MediaLoader.swift b/ElementX/Sources/Services/Media/MediaLoader.swift index b991caf3c..cf311fbdc 100644 --- a/ElementX/Sources/Services/Media/MediaLoader.swift +++ b/ElementX/Sources/Services/Media/MediaLoader.swift @@ -33,10 +33,6 @@ actor MediaLoader: MediaLoaderProtocol { self.client = client self.clientQueue = clientQueue } - - func mediaSourceForURL(_ url: URL) -> MediaSourceProxy { - .init(url: url) - } func loadMediaContentForSource(_ source: MediaSourceProxy) async throws -> Data { try await enqueueLoadMediaRequest(forSource: source) { diff --git a/ElementX/Sources/Services/Media/MediaLoaderProtocol.swift b/ElementX/Sources/Services/Media/MediaLoaderProtocol.swift index d9d81f270..1a2d932f0 100644 --- a/ElementX/Sources/Services/Media/MediaLoaderProtocol.swift +++ b/ElementX/Sources/Services/Media/MediaLoaderProtocol.swift @@ -17,8 +17,6 @@ import Foundation protocol MediaLoaderProtocol { - func mediaSourceForURL(_ url: URL) async -> MediaSourceProxy - func loadMediaContentForSource(_ source: MediaSourceProxy) async throws -> Data func loadMediaThumbnailForSource(_ source: MediaSourceProxy, width: UInt, height: UInt) async throws -> Data diff --git a/ElementX/Sources/Services/Media/MediaProvider.swift b/ElementX/Sources/Services/Media/MediaProvider.swift index 42778e966..98d4fc2d1 100644 --- a/ElementX/Sources/Services/Media/MediaProvider.swift +++ b/ElementX/Sources/Services/Media/MediaProvider.swift @@ -43,18 +43,6 @@ struct MediaProvider: MediaProviderProtocol { return imageCache.retrieveImageInMemoryCache(forKey: cacheKey, options: nil) } - func imageFromURL(_ url: URL?, size: CGSize?) -> UIImage? { - guard let url else { - return nil - } - - return imageFromSource(.init(url: url), size: size) - } - - func loadImageFromURL(_ url: URL, size: CGSize?) async -> Result { - await loadImageFromSource(.init(url: url), size: size) - } - func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result { if let image = imageFromSource(source, size: size) { return .success(image) @@ -103,18 +91,6 @@ struct MediaProvider: MediaProviderProtocol { let cacheKey = fileCacheKeyForURL(source.url) return fileCache.file(forKey: cacheKey, fileExtension: fileExtension) } - - func fileFromURL(_ url: URL?, fileExtension: String) -> URL? { - guard let url else { - return nil - } - - return fileFromSource(MediaSourceProxy(url: url), fileExtension: fileExtension) - } - - func loadFileFromURL(_ url: URL, fileExtension: String) async -> Result { - await loadFileFromSource(MediaSourceProxy(url: url), fileExtension: fileExtension) - } @discardableResult func loadFileFromSource(_ source: MediaSourceProxy, fileExtension: String) async -> Result { if let url = fileFromSource(source, fileExtension: fileExtension) { diff --git a/ElementX/Sources/Services/Media/MediaProviderProtocol.swift b/ElementX/Sources/Services/Media/MediaProviderProtocol.swift index 72b627f39..89e90874a 100644 --- a/ElementX/Sources/Services/Media/MediaProviderProtocol.swift +++ b/ElementX/Sources/Services/Media/MediaProviderProtocol.swift @@ -27,8 +27,4 @@ protocol MediaProviderProtocol: ImageProviderProtocol { func fileFromSource(_ source: MediaSourceProxy?, fileExtension: String) -> URL? @discardableResult func loadFileFromSource(_ source: MediaSourceProxy, fileExtension: String) async -> Result - - func fileFromURL(_ url: URL?, fileExtension: String) -> URL? - - @discardableResult func loadFileFromURL(_ url: URL, fileExtension: String) async -> Result } diff --git a/ElementX/Sources/Services/Media/MockMediaProvider.swift b/ElementX/Sources/Services/Media/MockMediaProvider.swift index 6cbc05bae..85d3d2d51 100644 --- a/ElementX/Sources/Services/Media/MockMediaProvider.swift +++ b/ElementX/Sources/Services/Media/MockMediaProvider.swift @@ -19,15 +19,7 @@ import UIKit struct MockMediaProvider: MediaProviderProtocol { func imageFromSource(_ source: MediaSourceProxy?, size: CGSize?) -> UIImage? { - imageFromURL(source?.url, size: size) - } - - func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result { - .failure(.failedRetrievingImage) - } - - func imageFromURL(_ url: URL?, size: CGSize?) -> UIImage? { - guard url != nil else { + guard source != nil else { return nil } @@ -42,7 +34,7 @@ struct MockMediaProvider: MediaProviderProtocol { return UIImage(systemName: "photo") } - func loadImageFromURL(_ url: URL, size: CGSize?) async -> Result { + func loadImageFromSource(_ source: MediaSourceProxy, size: CGSize?) async -> Result { guard let image = UIImage(systemName: "photo") else { fatalError() } @@ -57,12 +49,4 @@ struct MockMediaProvider: MediaProviderProtocol { @discardableResult func loadFileFromSource(_ source: MediaSourceProxy, fileExtension: String) async -> Result { .failure(.failedRetrievingFile) } - - func fileFromURL(_ url: URL?, fileExtension: String) -> URL? { - nil - } - - @discardableResult func loadFileFromURL(_ url: URL, fileExtension: String) async -> Result { - .failure(.failedRetrievingFile) - } } diff --git a/UnitTests/Sources/MediaProvider/MediaProviderTests.swift b/UnitTests/Sources/MediaProvider/MediaProviderTests.swift index 17c3034df..61e9aa028 100644 --- a/UnitTests/Sources/MediaProvider/MediaProviderTests.swift +++ b/UnitTests/Sources/MediaProvider/MediaProviderTests.swift @@ -56,26 +56,6 @@ final class MediaProviderTests: XCTestCase { XCTAssertNil(image) } - func test_whenImageFromURLStringWithURLStringNil_nilReturned() throws { - let image = mediaProvider.imageFromURL(nil, size: AvatarSize.room(on: .timeline).scaledSize) - XCTAssertNil(image) - } - - func test_whenImageFromURLStringWithURLStringNotNilAndImageCacheContainsImage_imageIsReturned() throws { - let avatarSize = AvatarSize.room(on: .timeline) - let url = URL.picturesDirectory - let key = "\(url.absoluteString){\(avatarSize.scaledValue),\(avatarSize.scaledValue)}" - let imageForKey = UIImage() - imageCache.retrievedImagesInMemory[key] = imageForKey - let image = mediaProvider.imageFromURL(url, size: avatarSize.scaledSize) - XCTAssertEqual(image, imageForKey) - } - - func test_whenImageFromURLStringWithURLStringNotNilAndImageNotCached_nilReturned() throws { - let image = mediaProvider.imageFromURL(URL.picturesDirectory, size: AvatarSize.room(on: .timeline).scaledSize) - XCTAssertNil(image) - } - func test_whenLoadImageFromSourceAndImageCacheContainsImage_successIsReturned() async throws { let avatarSize = AvatarSize.room(on: .timeline) let url = URL.picturesDirectory @@ -213,27 +193,6 @@ final class MediaProviderTests: XCTestCase { XCTAssertEqual(result, expectedResult) } - func test_whenFileFromURLStringAndURLIsNil_nilIsReturned() async throws { - mediaLoader.mediaContentData = try loadTestImage().pngData() - let url = mediaProvider.fileFromURL(nil, fileExtension: "png") - XCTAssertNil(url) - } - - func test_whenFileFromURLString_correctURLIsReturned() throws { - let expectedURL = URL(filePath: "/some/file/path") - fileCache.fileURLToReturn = expectedURL - let url = mediaProvider.fileFromURL(URL(staticString: "test/test1"), fileExtension: "png") - XCTAssertEqual(url?.absoluteString, expectedURL.absoluteString) - } - - func test_whenLoadFileFromURLString_correctURLIsReturned() async throws { - let expectedURL = URL(filePath: "/some/file/path") - let expectedResult: Result = .success(expectedURL) - fileCache.fileURLToReturn = expectedURL - let result = await mediaProvider.loadFileFromURL(URL(staticString: "test/test1"), fileExtension: "png") - XCTAssertEqual(result, expectedResult) - } - private func loadTestImage() throws -> UIImage { let bundle = Bundle(for: classForCoder) guard let path = bundle.path(forResource: "test_image", ofType: "png"), diff --git a/UnitTests/Sources/MediaProvider/MockMediaLoader.swift b/UnitTests/Sources/MediaProvider/MockMediaLoader.swift index 13181c92f..7a7b67545 100644 --- a/UnitTests/Sources/MediaProvider/MockMediaLoader.swift +++ b/UnitTests/Sources/MediaProvider/MockMediaLoader.swift @@ -24,10 +24,6 @@ class MockMediaLoader: MediaLoaderProtocol { var mediaContentData: Data? var mediaThumbnailData: Data? - func mediaSourceForURL(_ url: URL) -> MediaSourceProxy { - MediaSourceProxy(url: URL.picturesDirectory) - } - func loadMediaContentForSource(_ source: ElementX.MediaSourceProxy) async throws -> Data { if let mediaContentData { return mediaContentData diff --git a/changelog.d/444.api b/changelog.d/444.api new file mode 100644 index 000000000..03d38d643 --- /dev/null +++ b/changelog.d/444.api @@ -0,0 +1 @@ +Remove all APIs that load media from URLs. These were unused and we should continue to load media through MediaSource in the future. \ No newline at end of file