|
|
@ -441,15 +441,23 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE
|
|
|
|
}.retainUntilComplete()
|
|
|
|
}.retainUntilComplete()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private func utiTypeForItem(itemProvider: NSItemProvider) -> String? {
|
|
|
|
private func isUrlItem(itemProvider: NSItemProvider) -> Bool {
|
|
|
|
// Special case URLs. Many shares (e.g. pdfs) will register kUTTypeURL, but
|
|
|
|
// Special case URLs. Many shares (e.g. pdfs) will register kUTTypeURL, but
|
|
|
|
// URLs will have kUTTypeURL as their only registered UTI type.
|
|
|
|
// URLs will have kUTTypeURL as their only registered UTI type.
|
|
|
|
if itemProvider.registeredTypeIdentifiers.count == 1 {
|
|
|
|
guard itemProvider.registeredTypeIdentifiers.count == 1 else {
|
|
|
|
if let firstUtiType = itemProvider.registeredTypeIdentifiers.first {
|
|
|
|
return false
|
|
|
|
if firstUtiType == kUTTypeURL as String {
|
|
|
|
}
|
|
|
|
return kUTTypeURL as String
|
|
|
|
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 isUrlItem(itemProvider:itemProvider) {
|
|
|
|
|
|
|
|
return kUTTypeURL as String
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Order matters if we want to take advantage of share conversion in loadItem,
|
|
|
|
// 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
|
|
|
|
// Perhaps the AVFoundation APIs require some extra file system permssion we don't have in the
|
|
|
|
// passed through URL.
|
|
|
|
// passed through URL.
|
|
|
|
private func isVideoNeedingRelocation(itemProvider: NSItemProvider, itemUrl: URL) -> Bool {
|
|
|
|
private func isVideoNeedingRelocation(itemProvider: NSItemProvider, itemUrl: URL) -> Bool {
|
|
|
|
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) {
|
|
|
|
if isUrlItem(itemProvider:itemProvider) {
|
|
|
|
return false
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|