Переглянути джерело

block sending share messages until all attachments have been processed

cyberta 4 роки тому
батько
коміт
90f6e2d6b6

+ 6 - 1
DcShare/Controller/ShareViewController.swift

@@ -38,6 +38,7 @@ class ShareViewController: SLComposeServiceViewController {
     let dbHelper = DatabaseHelper()
     var shareAttachment: ShareAttachment?
     var isAccountConfigured: Bool = true
+    var isLoading: Bool = true
 
     var previewImageHeightConstraint: NSLayoutConstraint?
     var previewImageWidthConstraint: NSLayoutConstraint?
@@ -107,7 +108,7 @@ class ShareViewController: SLComposeServiceViewController {
 
     override func isContentValid() -> Bool {
         // Do validation of contentText and/or NSExtensionContext attachments here
-        return  isAccountConfigured && (!(contentText?.isEmpty ?? true) || !(self.shareAttachment?.isEmpty ?? true))
+        return  isAccountConfigured && !isLoading && (!(contentText?.isEmpty ?? true) || !(self.shareAttachment?.isEmpty ?? true))
     }
 
     private func setupNavigationBar() {
@@ -231,4 +232,8 @@ extension ShareViewController: ShareAttachmentDelegate {
             }
         }
     }
+
+    func onLoadingFinished() {
+        isLoading = false
+    }
 }

+ 2 - 0
DcShare/Helper/ShareAttachment.swift

@@ -9,6 +9,7 @@ protocol ShareAttachmentDelegate: class {
     func onAttachmentChanged()
     func onThumbnailChanged()
     func onUrlShared(url: URL)
+    func onLoadingFinished()
 }
 
 class ShareAttachment {
@@ -46,6 +47,7 @@ class ShareAttachment {
                 createMessageFromDataRepresentation(attachments)
             }
         }
+        delegate?.onLoadingFinished()
     }
 
     private func createMessageFromDataRepresentation(_ attachments: [NSItemProvider]) {