Эх сурвалжийг харах

fix AutoUpload multiusers

Marino Faggiana 7 жил өмнө
parent
commit
b5d13b6455

+ 1 - 1
iOSClient/AutoUpload/NCAutoUpload.m

@@ -673,7 +673,7 @@
                     (asset.creationDate != nil) ? (creationDate = [NSString stringWithFormat:@"%@", asset.creationDate]) : (creationDate = @"");
                     (asset.modificationDate != nil) ? (modificationDate = [NSString stringWithFormat:@"%@", asset.modificationDate]) : (modificationDate = @"");
                     
-                    idAsset = [NSString stringWithFormat:@"%@%@%@", asset.localIdentifier, creationDate, modificationDate];
+                    idAsset = [NSString stringWithFormat:@"%@%@%@%@", account.account, asset.localIdentifier, creationDate, modificationDate];
                     
                     if (![idsAsset containsObject: idAsset])
                         [newAssets addObject:asset];

+ 17 - 20
iOSClient/Database/NCManageDatabase.swift

@@ -1777,37 +1777,35 @@ class NCManageDatabase: NSObject {
         
         let realm = try! Realm()
         
-        let sorted = CCUtility.getOrderSettings()
-        let ascending = CCUtility.getAscendingSettings()
-        
         var recordsPhotosAutoUpload = [tableMetadata]()
         
         let results = self.getTablesDirectory(predicate: NSPredicate(format: "account = %@ AND serverUrl BEGINSWITH %@", tableAccount.account, serverUrl), sorted: "serverUrl", ascending: true)
         
         if results != nil {
             
+            // Prepare Predicate
+            var directoriesID: String = ""
             for directory in results! {
-            
-                let predicate = NSPredicate(format: "account = %@ AND directoryID = %@ AND session = '' AND type = 'file' AND (typeFile = %@ OR typeFile = %@)", tableAccount.account, directory.directoryID, k_metadataTypeFile_image, k_metadataTypeFile_video)
-                let metadatas = realm.objects(tableMetadata.self).filter(predicate).sorted(byKeyPath: sorted!, ascending: ascending)
                 
-                if metadatas.count > 0 {
-                    
-                    for metadata in metadatas {
-                        recordsPhotosAutoUpload.append(tableMetadata.init(value: metadata))
-                    }
+                if directoriesID.characters.count > 0 {
+                    directoriesID = directoriesID + " OR "
                 }
+                directoriesID = directoriesID + "directoryID = '\(directory.directoryID)'"
             }
-        }
-        
-        if recordsPhotosAutoUpload.count > 0 {
-            
-            return Array(recordsPhotosAutoUpload)
+            let predicateStr = String(format: "account = '%@' AND (%@) AND session = '' AND type = 'file' AND (typeFile = '%@' OR typeFile = '%@')", tableAccount.account, directoriesID, k_metadataTypeFile_image, k_metadataTypeFile_video)
             
-        } else {
+            // Query
+            let metadatas = realm.objects(tableMetadata.self).filter(NSPredicate(format: predicateStr)).sorted(byKeyPath: "date", ascending: false)
+
+            // Convert results in unmanaged
+            for metadata in metadatas {
+                recordsPhotosAutoUpload.append(tableMetadata.init(value: metadata))
+            }
             
-            return nil
+            return Array(recordsPhotosAutoUpload)
         }
+        
+        return nil
     }
     
     func convertMetadataToUnmanagedMetadata(_ metadatas: Results<tableMetadata>) -> [tableMetadata]? {
@@ -1860,7 +1858,7 @@ class NCManageDatabase: NSObject {
                         modificationDate = ""
                     }
                     
-                    addRecord.idAsset = "\(asset.localIdentifier)\(creationDate)\(modificationDate)"
+                    addRecord.idAsset = "\(tableAccount.account)\(asset.localIdentifier)\(creationDate)\(modificationDate)"
 
                     realm.add(addRecord, update: true)
                 }
@@ -2155,7 +2153,6 @@ class NCManageDatabase: NSObject {
             return nil
         }
 
-        
         var sharesLink = [String:String]()
         var sharesUserAndGroup = [String:String]()