From fc4b0a359a72ea5deb89436a0cd7a16f92cbc3ab Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 11 Jan 2018 13:49:50 -0500 Subject: [PATCH] Clean up ahead of PR. --- .../ShareViewController.swift | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/SignalShareExtension/ShareViewController.swift b/SignalShareExtension/ShareViewController.swift index ea305c9cb1..bff10d4e3a 100644 --- a/SignalShareExtension/ShareViewController.swift +++ b/SignalShareExtension/ShareViewController.swift @@ -440,16 +440,24 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE owsFail("\(self.logTag) building attachment failed with error: \(error)") }.retainUntilComplete() } + + private func isUrlItem(itemProvider: NSItemProvider) -> Bool { + // Special case URLs. Many shares (e.g. pdfs) will register kUTTypeURL, but + // URLs will have kUTTypeURL as their only registered UTI type. + guard itemProvider.registeredTypeIdentifiers.count == 1 else { + return false + } + guard let firstUtiType = itemProvider.registeredTypeIdentifiers.first else { + return false + } + return firstUtiType == kUTTypeURL as String + } private func utiTypeForItem(itemProvider: NSItemProvider) -> String? { // Special case URLs. Many shares (e.g. pdfs) will register kUTTypeURL, but // URLs will have kUTTypeURL as their only registered UTI type. - if itemProvider.registeredTypeIdentifiers.count == 1 { - if let firstUtiType = itemProvider.registeredTypeIdentifiers.first { - if firstUtiType == kUTTypeURL as String { - return kUTTypeURL as String - } - } + if isUrlItem(itemProvider:itemProvider) { + return kUTTypeURL as String } // Order matters if we want to take advantage of share conversion in loadItem, @@ -598,7 +606,7 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE // Perhaps the AVFoundation APIs require some extra file system permssion we don't have in the // passed through URL. private func isVideoNeedingRelocation(itemProvider: NSItemProvider, itemUrl: URL) -> Bool { - if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) { + if isUrlItem(itemProvider:itemProvider) { return false }