浏览代码

improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 年之前
父节点
当前提交
0a21655660
共有 1 个文件被更改,包括 19 次插入10 次删除
  1. 19 10
      iOSClient/Main/Create cloud/NCUploadAssets.swift

+ 19 - 10
iOSClient/Main/Create cloud/NCUploadAssets.swift

@@ -57,6 +57,7 @@ class NCUploadAssets: NSObject, ObservableObject, NCCreateFormUploadConflictDele
     @Published var isUseAutoUploadSubFolder: Bool = false
     @Published var previewStore: [PreviewStore] = []
     @Published var showHUD: Bool = false
+    @Published var uploadInProgress: Bool = false
 
     var metadatasNOConflict: [tableMetadata] = []
     var metadatasUploadInConflict: [tableMetadata] = []
@@ -101,7 +102,11 @@ class NCUploadAssets: NSObject, ObservableObject, NCCreateFormUploadConflictDele
     }
 
     func dismissCreateFormUploadConflict(metadatas: [tableMetadata]?) {
-        guard let metadatas = metadatas else { return }
+        guard let metadatas = metadatas else {
+            self.showHUD.toggle()
+            self.uploadInProgress.toggle()
+            return
+        }
 
         func createProcessUploads() {
             NCNetworkingProcessUpload.shared.createProcessUploads(metadatas: metadatas, completion: { _ in
@@ -115,6 +120,7 @@ class NCUploadAssets: NSObject, ObservableObject, NCCreateFormUploadConflictDele
                 let result = NCNetworking.shared.createFolder(assets: assets, selector: NCGlobal.shared.selectorUploadFile, useSubFolder: self.isUseAutoUploadSubFolder, account: self.userBaseUrl.account, urlBase: self.userBaseUrl.urlBase, userId: self.userBaseUrl.userId)
                 DispatchQueue.main.async {
                     self.showHUD.toggle()
+                    self.uploadInProgress.toggle()
                     if result {
                         createProcessUploads()
                     } else {
@@ -456,19 +462,22 @@ struct UploadAssetsView: View {
                     }
 
                     Button(NSLocalizedString("_save_", comment: "")) {
-                        uploadAssets.showHUD.toggle()
-                        save { metadatasNOConflict, metadatasUploadInConflict in
-                            if metadatasUploadInConflict.isEmpty {
-                                uploadAssets.dismissCreateFormUploadConflict(metadatas: metadatasNOConflict)
-                            } else {
-                                uploadAssets.metadatasNOConflict = metadatasNOConflict
-                                uploadAssets.metadatasUploadInConflict = metadatasUploadInConflict
-                                isPresentedUploadConflict = true
+                        if !uploadAssets.uploadInProgress {
+                            uploadAssets.showHUD.toggle()
+                            uploadAssets.uploadInProgress.toggle()
+                            save { metadatasNOConflict, metadatasUploadInConflict in
+                                if metadatasUploadInConflict.isEmpty {
+                                    uploadAssets.dismissCreateFormUploadConflict(metadatas: metadatasNOConflict)
+                                } else {
+                                    uploadAssets.metadatasNOConflict = metadatasNOConflict
+                                    uploadAssets.metadatasUploadInConflict = metadatasUploadInConflict
+                                    isPresentedUploadConflict = true
+                                }
                             }
                         }
                     }
                     .frame(maxWidth: .infinity)
-                    .buttonStyle(ButtonRounded(disabled: false))
+                    .buttonStyle(ButtonRounded(disabled: uploadAssets.uploadInProgress))
                     .listRowBackground(Color(UIColor.systemGroupedBackground))
                 }
                 .navigationTitle(NSLocalizedString("_upload_photos_videos_", comment: ""))