Marino Faggiana 6 years ago
parent
commit
13dc40bfcf

+ 3 - 2
File Provider Extension/FileProviderExtension+Actions.swift

@@ -155,11 +155,12 @@ extension FileProviderExtension {
             if metadataFrom.directory {
                 
                 NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom)
-                NCManageDatabase.sharedInstance.moveMetadata(fileName: metadataFrom.fileName, directoryID: metadataFrom.directoryID, directoryIDTo: directoryIDTo)
+                NCManageDatabase.sharedInstance.moveMetadata(fileID: fileIDFrom, serverUrlTo: serverUrlTo, directoryIDTo: directoryIDTo)
                 _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrlTo)
                 
             } else {
-                NCManageDatabase.sharedInstance.moveMetadata(fileName: metadataFrom.fileName, directoryID: metadataFrom.directoryID, directoryIDTo: directoryIDTo)
+                
+                NCManageDatabase.sharedInstance.moveMetadata(fileID: fileIDFrom, serverUrlTo: serverUrlTo, directoryIDTo: directoryIDTo)
             }
             
             guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", fileIDFrom)) else {

+ 4 - 6
iOSClient/Database/NCManageDatabase.swift

@@ -1689,26 +1689,24 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func moveMetadata(fileName: String, directoryID: String, directoryIDTo: String) {
+    @objc func moveMetadata(fileID: String, serverUrlTo: String, directoryIDTo: String) {
         
         let realm = try! Realm()
 
         do {
             try realm.write {
             
-                let results = realm.objects(tableMetadata.self).filter("directoryID == %@ AND fileName == %@", directoryID, fileName)
+                let results = realm.objects(tableMetadata.self).filter("fileID == %@", fileID)
         
                 for result in results {
+                    result.serverUrl = serverUrlTo
                     result.directoryID = directoryIDTo
                 }
             }
         } catch let error {
             print("[LOG] Could not write to database: ", error)
             return
-        }
-        
-        self.setDateReadDirectory(directoryID: directoryID)
-        self.setDateReadDirectory(directoryID: directoryIDTo)
+        }        
     }
     
     @objc func renameMetadata(fileNameTo: String, fileID: String) -> tableMetadata? {

+ 8 - 23
iOSClient/Main/CCMain.m

@@ -1699,30 +1699,15 @@
     
         [_hud hideHud];
         
-        NSString *fileName = metadataNet.fileName;
-        NSString *directoryID = metadataNet.directoryID;
-        NSString *directoryIDTo = metadataNet.directoryIDTo;
-        NSString *serverUrlTo ;//= [[NCManageDatabase sharedInstance] getServerUrl:directoryIDTo];
-        if (!serverUrlTo) return;
+        if (metadataNet.directory) {
+            [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:[CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadataNet.fileName]];
+        }
         
-        // FILE -> Metadata
-        if (metadataNet.directory == NO)
-            [[NCManageDatabase sharedInstance] moveMetadataWithFileName:fileName directoryID:directoryID directoryIDTo:directoryIDTo];
-    
-        // DIRECTORY ->  Directory - CCMetadata
-        if (metadataNet.directory == YES) {
+        [[NCManageDatabase sharedInstance] moveMetadataWithFileID:metadataNet.fileID serverUrlTo:metadataNet.serverUrlTo directoryIDTo:metadataNet.directoryIDTo];
         
-            // delete all dir / subdir
-            [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:[CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:fileName]];
-            
-            // move metadata
-            [[NCManageDatabase sharedInstance] moveMetadataWithFileName:fileName directoryID:directoryID directoryIDTo:directoryIDTo];
-            
-            // Add new directory
-            NSString *newDirectory = [NSString stringWithFormat:@"%@/%@", serverUrlTo, fileName];
-            (void) [[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:false favorite:false fileID:nil permissions:nil serverUrl:newDirectory];
-        }
-    
+        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:metadataNet.serverUrl directoryID:nil];
+        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:metadataNet.serverUrlTo directoryID:nil];
+
         // next
         [_selectedFileIDsMetadatas removeObjectForKey:metadataNet.fileID];
         
@@ -1730,7 +1715,7 @@
         
             NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
             
-            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
+            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], metadataNet.serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
             
         } else {