Respond to CR.

pull/1/head
Matthew Chen 7 years ago
parent aeadea67e2
commit 3135e6f6f7

@ -189,7 +189,7 @@ typedef void (^SendMessageBlock)(SendCompletionBlock completion);
OWSAssertDebug(self.attachments.count > 0); OWSAssertDebug(self.attachments.count > 0);
if (self.attachments.count > 1) { if (self.attachments.count > 1) {
return nil; return NO;
} }
OWSAssertDebug(self.attachments.count == 1); OWSAssertDebug(self.attachments.count == 1);
SignalAttachment *attachment = self.attachments.firstObject; SignalAttachment *attachment = self.attachments.firstObject;

@ -653,6 +653,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
} }
var visualMediaItemProviders = [NSItemProvider]() var visualMediaItemProviders = [NSItemProvider]()
var hasNonVisualMedia = false
for attachment in attachments { for attachment in attachments {
guard let itemProvider = attachment as? NSItemProvider else { guard let itemProvider = attachment as? NSItemProvider else {
owsFailDebug("Unexpected attachment type: \(String(describing: attachment))") owsFailDebug("Unexpected attachment type: \(String(describing: attachment))")
@ -660,9 +661,13 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
} }
if isVisualMediaItem(itemProvider: itemProvider) { if isVisualMediaItem(itemProvider: itemProvider) {
visualMediaItemProviders.append(itemProvider) visualMediaItemProviders.append(itemProvider)
} else {
hasNonVisualMedia = true
} }
} }
if visualMediaItemProviders.count > 0 { // Only allow multiple-attachment sends if all attachments
// are visual media.
if visualMediaItemProviders.count > 0 && !hasNonVisualMedia {
return visualMediaItemProviders return visualMediaItemProviders
} }
@ -969,12 +974,12 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
loadPromises.append(loadPromise) loadPromises.append(loadPromise)
} }
return when(fulfilled: loadPromises) return when(fulfilled: loadPromises)
}.then { (signalAttachments) -> Promise<[SignalAttachment]> in }.map { (signalAttachments) -> [SignalAttachment] in
guard signalAttachments.count > 0 else { guard signalAttachments.count > 0 else {
let error = ShareViewControllerError.assertionError(description: "no valid attachments") let error = ShareViewControllerError.assertionError(description: "no valid attachments")
return Promise(error: error) throw error
} }
return Promise.value(signalAttachments) return signalAttachments
} }
promise.retainUntilComplete() promise.retainUntilComplete()
return promise return promise

Loading…
Cancel
Save