marinofaggiana 5 years ago
parent
commit
e0c04ed352
1 changed files with 51 additions and 24 deletions
  1. 51 24
      iOSClient/Main/Create cloud/NCCreateFormUploadVoiceNote.swift

+ 51 - 24
iOSClient/Main/Create cloud/NCCreateFormUploadVoiceNote.swift

@@ -23,7 +23,7 @@
 
 import Foundation
 
-class NCCreateFormUploadVoiceNote: XLFormViewController, NCSelectDelegate, AVAudioPlayerDelegate {
+class NCCreateFormUploadVoiceNote: XLFormViewController, NCSelectDelegate, AVAudioPlayerDelegate, NCCreateFormUploadConflictDelegate {
     
     @IBOutlet weak var buttonPlayStop: UIButton!
     @IBOutlet weak var labelTimer: UILabel!
@@ -215,34 +215,61 @@ class NCCreateFormUploadVoiceNote: XLFormViewController, NCSelectDelegate, AVAud
     
     @objc func save() {
         
-        self.dismiss(animated: true, completion: {
+        let rowFileName : XLFormRowDescriptor  = self.form.formRow(withTag: "fileName")!
+        guard let name = rowFileName.value else {
+            return
+        }
+        let ext = (name as! NSString).pathExtension.uppercased()
+        var fileNameSave = ""
+                   
+        if (ext == "") {
+            fileNameSave = name as! String + ".m4a"
+        } else {
+            fileNameSave = (name as! NSString).deletingPathExtension + ".m4a"
+        }
         
-            let rowFileName : XLFormRowDescriptor  = self.form.formRow(withTag: "fileName")!
-            guard let name = rowFileName.value else {
-                return
-            }
-            let ext = (name as! NSString).pathExtension.uppercased()
-            var fileNameSave = ""
-            
-            if (ext == "") {
-                fileNameSave = name as! String + ".m4a"
-            } else {
-                fileNameSave = (name as! NSString).deletingPathExtension + ".m4a"
-            }
+        let metadataForUpload = NCManageDatabase.sharedInstance.createMetadata(account: self.appDelegate.activeAccount, fileName: fileNameSave, ocId: UUID().uuidString, serverUrl: self.serverUrl, url: "", contentType: "")
+        
+        metadataForUpload.session = k_upload_session
+        metadataForUpload.sessionSelector = selectorUploadFile
+        metadataForUpload.status = Int(k_metadataStatusWaitUpload)
+        
+        if NCUtility.sharedInstance.getMetadataConflict(account: appDelegate.activeAccount, serverUrl: serverUrl, fileName: fileNameSave) != nil {
                         
-            let metadataForUpload = NCManageDatabase.sharedInstance.createMetadata(account: self.appDelegate.activeAccount, fileName: fileNameSave, ocId: UUID().uuidString, serverUrl: self.serverUrl, url: "", contentType: "")
+            guard let conflictViewController = UIStoryboard(name: "NCCreateFormUploadConflict", bundle: nil).instantiateInitialViewController() as? NCCreateFormUploadConflict else { return }
+            conflictViewController.textLabelDetailNewFile = NSLocalizedString("_now_", comment: "")
+            conflictViewController.serverUrl = serverUrl
+            conflictViewController.metadatasUploadInConflict = [metadataForUpload]
+            conflictViewController.delegate = self
             
-            metadataForUpload.session = k_upload_session
-            metadataForUpload.sessionSelector = selectorUploadFile
-            metadataForUpload.status = Int(k_metadataStatusWaitUpload)
+            self.present(conflictViewController, animated: true, completion: nil)
             
-            CCUtility.copyFile(atPath: self.fileNamePath, toPath: CCUtility.getDirectoryProviderStorageOcId(metadataForUpload.ocId, fileNameView: fileNameSave))
-            
-            NCManageDatabase.sharedInstance.addMetadata(metadataForUpload)
-            NCMainCommon.sharedInstance.reloadDatasource(ServerUrl: self.serverUrl, ocId: nil, action: Int32(k_action_NULL))
+        } else {
+                            
+            dismissAndUpload(metadataForUpload)
+        }
+    }
+    
+    func dismissCreateFormUploadConflict(metadatas: [tableMetadata]?) {
+        
+        if metadatas != nil && metadatas!.count > 0 {
+                                
+            DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
+                self.dismissAndUpload(metadatas![0])
+            }
+        }
+    }
+    
+    func dismissAndUpload(_ metadata: tableMetadata) {
+        
+        CCUtility.copyFile(atPath: self.fileNamePath, toPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView))
+                   
+        NCManageDatabase.sharedInstance.addMetadata(metadata)
+        NCMainCommon.sharedInstance.reloadDatasource(ServerUrl: self.serverUrl, ocId: nil, action: Int32(k_action_NULL))
 
-            self.appDelegate.startLoadAutoDownloadUpload()
-        })
+        self.appDelegate.startLoadAutoDownloadUpload()
+        
+        self.dismiss(animated: true, completion: nil)
     }
     
     @objc func cancel() {