浏览代码

Merge pull request #2081 from nextcloud/fix/411

Fix/411
Marino Faggiana 2 年之前
父节点
当前提交
0154fb3a6d

+ 0 - 1
iOSClient/Data/NCDatabase.swift

@@ -385,7 +385,6 @@ class tableMetadata: Object, NCUserBaseUrl {
     @objc dynamic var hasPreview: Bool = false
     @objc dynamic var iconName = ""
     @objc dynamic var iconUrl = ""
-    @objc dynamic var isAutoupload: Bool = false
     @objc dynamic var isExtractFile: Bool = false
     @objc dynamic var livePhoto: Bool = false
     @objc dynamic var mountType = ""

+ 2 - 1
iOSClient/Files/NCFiles.swift

@@ -86,9 +86,10 @@ class NCFiles: NCCollectionViewCommon {
                 self.metadataFolder = NCManageDatabase.shared.getMetadataFolder(account: self.appDelegate.account, urlBase: self.appDelegate.urlBase, serverUrl: self.serverUrl)
             }
             let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.appDelegate.account, self.serverUrl))
+            let metadataTransfer = NCManageDatabase.shared.getMetadata(predicate: NSPredicate(format: "status != %i AND serverUrl == %@", NCGlobal.shared.metadataStatusNormal, self.serverUrl))
 
             // FORCED false: test the directory.etag
-            if !forced, let directory = directory, directory.etag == self.dataSource.directory?.etag {
+            if !forced, let directory = directory, directory.etag == self.dataSource.directory?.etag, metadataTransfer == nil {
                 return
             }
 

+ 28 - 36
iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

@@ -322,6 +322,8 @@ import XLForm
 
     func createDocument(fileNamePath: String, fileName: String) {
 
+        self.navigationItem.rightBarButtonItem?.isEnabled = false
+
         if self.editorId == NCGlobal.shared.editorText || self.editorId == NCGlobal.shared.editorOnlyoffice {
 
             var customUserAgent: String?
@@ -333,53 +335,43 @@ import XLForm
             } // else: use default
 
             NCCommunication.shared.NCTextCreateFile(fileNamePath: fileNamePath, editorId: editorId, creatorId: creatorId, templateId: templateIdentifier, customUserAgent: customUserAgent) { account, url, errorCode, errorMessage in
+                guard errorCode == 0, account == self.appDelegate.account, let url = url else {
+                    self.navigationItem.rightBarButtonItem?.isEnabled = true
+                    NCContentPresenter.shared.messageNotification("_error_", description: errorMessage, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
+                    return
+                }
 
-                if errorCode == 0 && account == self.appDelegate.account {
-
-                    if url != nil && url!.count > 0 {
-                        var results = NCCommunicationCommon.shared.getInternalType(fileName: fileName, mimeType: "", directory: false)
-                        //FIXME: iOS 12.0,* don't detect UTI text/markdown, text/x-markdown
-                        if results.mimeType.isEmpty {
-                            results.mimeType = "text/x-markdown"
-                        }
-                        self.dismiss(animated: true, completion: {
-                            let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: fileName, fileNameView: fileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url ?? "", contentType: results.mimeType)
+                var results = NCCommunicationCommon.shared.getInternalType(fileName: fileName, mimeType: "", directory: false)
+                //FIXME: iOS 12.0,* don't detect UTI text/markdown, text/x-markdown
+                if results.mimeType.isEmpty {
+                    results.mimeType = "text/x-markdown"
+                }
 
-                            if let viewController = self.appDelegate.activeViewController {
-                                NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
-                            }
-                        })
+                self.dismiss(animated: true, completion: {
+                    let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: fileName, fileNameView: fileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url, contentType: results.mimeType)
+                    if let viewController = self.appDelegate.activeViewController {
+                        NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
                     }
-
-                } else if errorCode != 0 {
-                    NCContentPresenter.shared.messageNotification("_error_", description: errorMessage, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
-                } else {
-                   print("[LOG] It has been changed user during networking process, error.")
-                }
+                })
             }
         }
 
         if self.editorId == NCGlobal.shared.editorCollabora {
 
             NCCommunication.shared.createRichdocuments(path: fileNamePath, templateId: templateIdentifier) { account, url, errorCode, errorDescription in
-
-                if errorCode == 0 && account == self.appDelegate.account && url != nil {
-
-                    self.dismiss(animated: true, completion: {
-
-                        let createFileName = (fileName as NSString).deletingPathExtension + "." + self.fileNameExtension
-                        let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: createFileName, fileNameView: createFileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url!, contentType: "")
-
-                        if let viewController = self.appDelegate.activeViewController {
-                            NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
-                        }
-                   })
-
-                } else if errorCode != 0 {
+                guard errorCode == 0, account == self.appDelegate.account, let url = url else {
+                    self.navigationItem.rightBarButtonItem?.isEnabled = true
                     NCContentPresenter.shared.messageNotification("_error_", description: errorDescription, delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.error, errorCode: errorCode)
-                } else {
-                    print("[LOG] It has been changed user during networking process, error.")
+                    return
                 }
+
+                self.dismiss(animated: true, completion: {
+                    let createFileName = (fileName as NSString).deletingPathExtension + "." + self.fileNameExtension
+                    let metadata = NCManageDatabase.shared.createMetadata(account: self.appDelegate.account, user: self.appDelegate.user, userId: self.appDelegate.userId, fileName: createFileName, fileNameView: createFileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url, contentType: "")
+                    if let viewController = self.appDelegate.activeViewController {
+                        NCViewer.shared.view(viewController: viewController, metadata: metadata, metadatas: [metadata], imageIcon: nil)
+                    }
+               })
             }
         }
     }

+ 1 - 1
iOSClient/NCGlobal.swift

@@ -115,7 +115,7 @@ class NCGlobal: NSObject {
     // Database Realm
     //
     let databaseDefault                             = "nextcloud.realm"
-    let databaseSchemaVersion: UInt64               = 229
+    let databaseSchemaVersion: UInt64               = 230
 
     // Intro selector
     //

+ 0 - 3
iOSClient/Networking/NCAutoUpload.swift

@@ -152,9 +152,6 @@ class NCAutoUpload: NSObject {
                         metadata.assetLocalIdentifier = asset.localIdentifier
                         metadata.session = session
                         metadata.sessionSelector = selector
-                        if selector == NCGlobal.shared.selectorUploadAutoUpload {
-                            metadata.isAutoupload = true
-                        }
                         metadata.status = NCGlobal.shared.metadataStatusWaitUpload
                         if assetMediaType == PHAssetMediaType.video {
                             metadata.classFile = NCCommunicationCommon.typeClassFile.video.rawValue

+ 1 - 1
iOSClient/Networking/NCNetworking.swift

@@ -627,7 +627,7 @@ import Photos
             return completion()
         }
 
-        if metadata.session == NCCommunicationCommon.shared.sessionIdentifierUpload {
+        if metadata.session == NCCommunicationCommon.shared.sessionIdentifierUpload || metadata.chunk {
 
             guard let fileNameLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView) else { return }
 

+ 0 - 1
iOSClient/Utility/NCUtility.swift

@@ -533,7 +533,6 @@ class NCUtility: NSObject {
                 let metadataLivePhoto = NCManageDatabase.shared.createMetadata(account: metadata.account, user: metadata.user, userId: metadata.userId, fileName: fileName, fileNameView: fileName, ocId: ocId, serverUrl: metadata.serverUrl, urlBase: metadata.urlBase, url: "", contentType: "", isLivePhoto: true)
                 metadataLivePhoto.classFile = NCCommunicationCommon.typeClassFile.video.rawValue
                 metadataLivePhoto.e2eEncrypted = metadata.e2eEncrypted
-                metadataLivePhoto.isAutoupload = metadata.isAutoupload
                 metadataLivePhoto.isExtractFile = true
                 metadataLivePhoto.session = metadata.session
                 metadataLivePhoto.sessionSelector = metadata.sessionSelector