From 6da6350226e70c24b8402a80e0ae3a9eb16b0c84 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Thu, 21 Aug 2025 14:36:54 +0300 Subject: [PATCH] Fallback to the first type with a valid extension when sharing media and no supported content types can be found --- .../Sources/Other/Extensions/NSItemProvider.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ElementX/Sources/Other/Extensions/NSItemProvider.swift b/ElementX/Sources/Other/Extensions/NSItemProvider.swift index 09c203ce1..352714164 100644 --- a/ElementX/Sources/Other/Extensions/NSItemProvider.swift +++ b/ElementX/Sources/Other/Extensions/NSItemProvider.swift @@ -125,6 +125,18 @@ extension NSItemProvider { let supportedContentTypes = registeredContentTypes .filter { isMimeTypeSupported($0.preferredMIMEType) || isIdentifierSupported($0.identifier) } + // If we can't find any supported types try to fallback to the first with + // a valid extension. Return nil otherwise. + guard !supportedContentTypes.isEmpty else { + for type in registeredContentTypes { + if let fileExtension = type.preferredFilenameExtension { + return .init(type: type, fileExtension: fileExtension) + } + } + + return nil + } + // Have .jpeg take priority over .heic if supportedContentTypes.contains(.jpeg) { guard let fileExtension = preferredFileExtension(for: .jpeg) else {