Browse Source

dev identifier

Marino Faggiana 6 years ago
parent
commit
56313cc777

+ 5 - 2
PickerFileProvider/FileProvider.swift

@@ -758,7 +758,10 @@ class FileProvider: NSFileProviderExtension, CCNetworkingDelegate {
         ocNetworking?.moveFileOrFolder(fileNamePathFrom, fileNameTo: fileNamePathTo, success: {
             
             // Rename metadata
-            NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: itemName, fileID: metadata.fileID)
+            guard let metadata = NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: itemName, fileID: metadata.fileID) else {
+                completionHandler(nil, NSFileProviderError(.noSuchItem))
+                return
+            }
             
             if metadata.directory {
                 
@@ -772,7 +775,7 @@ class FileProvider: NSFileProviderExtension, CCNetworkingDelegate {
                 
                 NCManageDatabase.sharedInstance.setLocalFile(fileID: metadata.fileID, date: nil, exifDate: nil, exifLatitude: nil, exifLongitude: nil, fileName: itemName, etag: nil, etagFPE: nil)
             }
-            
+                        
             let parentItemIdentifier = getParentItemIdentifier(metadata: metadata)
             if parentItemIdentifier != nil {
                 let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier!)

+ 1 - 1
iOSClient/Actions/CCActions.swift

@@ -242,7 +242,7 @@ class CCActions: NSObject {
     @objc func renameSuccess(_ metadataNet: CCMetadataNet) {
                 
         // Rename metadata
-        NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: metadataNet.fileNameTo, fileID: metadataNet.fileID)
+        _ = NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: metadataNet.fileNameTo, fileID: metadataNet.fileID)
         
         if metadataNet.directory == true {
             

+ 17 - 16
iOSClient/Database/NCManageDatabase.swift

@@ -1702,7 +1702,6 @@ class NCManageDatabase: NSObject {
             try realm.write {
             
                 let metadatas = realm.objects(tableMetadata.self).filter("account = %@ AND fileName = %@ AND directoryID = %@", tableAccount.account, fileName, directoryID)
-        
                 for metadata in metadatas {
                     
                     // modify identifier
@@ -1723,39 +1722,41 @@ class NCManageDatabase: NSObject {
         self.setDateReadDirectory(directoryID: directoryIDTo)
     }
     
-    @objc func renameMetadata(fileNameTo: String, fileID: String) {
+    @objc func renameMetadata(fileNameTo: String, fileID: String) -> tableMetadata? {
         
         guard let tableAccount = self.getAccountActive() else {
-            return
+            return nil
         }
         
-        var directoryID = ""
+        var result :tableMetadata?
         let realm = try! Realm()
         
         do {
             try realm.write {
                 
-                let metadatas = realm.objects(tableMetadata.self).filter("account = %@ AND fileID = %@", tableAccount.account, fileID)
-                
-                for metadata in metadatas {
-                    
-                    directoryID = metadata.directoryID
+                result = realm.objects(tableMetadata.self).filter("account = %@ AND fileID = %@", tableAccount.account, fileID).first
+                if result != nil {
                     
                     // modify identifier
-                    let serverUrl = self.getServerUrl(directoryID)!
-                    let identifier = self.addIdentifier(metadata.identifier, fileName: fileNameTo, serverUrl: serverUrl, account:tableAccount.account ,realm: realm)
+                    let serverUrl = self.getServerUrl(result!.directoryID)!
+                    let identifier = self.addIdentifier(result!.identifier, fileName: fileNameTo, serverUrl: serverUrl, account:tableAccount.account ,realm: realm)
                     
-                    metadata.fileName = fileNameTo
-                    metadata.fileNameView = fileNameTo
-                    metadata.identifier = identifier
+                    result!.fileName = fileNameTo
+                    result!.fileNameView = fileNameTo
+                    result!.identifier = identifier
                 }
             }
         } catch let error {
             print("[LOG] Could not write to database: ", error)
-            return
+            return nil
         }
         
-        self.setDateReadDirectory(directoryID: directoryID)
+        if result == nil {
+            return nil
+        }
+        
+        self.setDateReadDirectory(directoryID: result!.directoryID)
+        return tableMetadata.init(value: result!)
     }
     
     @objc func updateMetadata(_ metadata: tableMetadata) -> tableMetadata? {