Marino Faggiana 6 ani în urmă
părinte
comite
caebb20a95

+ 9 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -1953,7 +1953,7 @@ class NCManageDatabase: NSObject {
     
     //MARK: -
     //MARK: Table Photos
-    @objc func getTablePhotos() -> [tableMetadata]? {
+    @objc func getTablePhotos(addMetadatas: [tableMetadata]) -> [tableMetadata]? {
 
         guard let tableAccount = self.getAccountActive() else {
             return nil
@@ -1966,7 +1966,14 @@ class NCManageDatabase: NSObject {
         let results = realm.objects(tablePhotos.self).filter(predicate).sorted(byKeyPath: "date", ascending: false)
 
         if (results.count > 0) {
-            return Array(results.map { tableMetadata.init(value:$0) })
+            var returnMetadatas = Array(results.map { tableMetadata.init(value:$0) })
+            for metadata in addMetadatas {
+                let result = realm.objects(tablePhotos.self).filter("fileID == %@", metadata.fileID).first
+                if result == nil {
+                    returnMetadatas.append(metadata)
+                }
+            }
+            return returnMetadatas
         } else {
             return nil
         }

+ 4 - 3
iOSClient/Networking/CCNetworking.m

@@ -1058,13 +1058,14 @@
         metadata = [[NCManageDatabase sharedInstance] addMetadata:metadata];
         if (![fileID isEqualToString:tempFileID])
             [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", tempFileID] clearDateReadDirectoryID:nil];
-        if ([metadata.typeFile isEqualToString:k_metadataTypeFile_image] || [metadata.typeFile isEqualToString:k_metadataTypeFile_video]) {
-            [[NCManageDatabase sharedInstance] addPhotos:metadata];
-        }
          
 #ifndef EXTENSION
         AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
         [appDelegate.listProgressMetadata removeObjectForKey:metadata.fileID];
+        // Workaround for add new Photos
+        if ([metadata.typeFile isEqualToString:k_metadataTypeFile_image] || [metadata.typeFile isEqualToString:k_metadataTypeFile_video]) {
+            [appDelegate.activePhotos.addMetadatas addObject:metadata];
+        }
 #endif
         
         NSLog(@"[LOG] Insert new upload : %@ - fileID : %@", metadata.fileName, metadata.fileID);

+ 1 - 1
iOSClient/Photos/CCPhotos.h

@@ -43,7 +43,7 @@
 @property (nonatomic, weak) CCDetail *detailViewController;
 @property BOOL isSearchMode;
 @property BOOL isEditMode;
-
+@property (nonatomic, strong) NSMutableArray *addMetadatas;
 
 - (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode;
 

+ 2 - 1
iOSClient/Photos/CCPhotos.m

@@ -86,6 +86,7 @@
     selectedMetadatas = [NSMutableArray new];
     fileIDHide = [NSMutableArray new];
     saveEtagForStartDirectory = [NSMutableDictionary new];
+    self.addMetadatas = [NSMutableArray new];
     hud = [[CCHud alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]];
     
     // empty Data Source
@@ -595,7 +596,7 @@
     
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
-            NSArray *metadatas = [[NCManageDatabase sharedInstance] getTablePhotos];
+            NSArray *metadatas = [[NCManageDatabase sharedInstance] getTablePhotosWithAddMetadatas:self.addMetadatas];
             sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:metadatas listProgressMetadata:nil groupByField:@"date" fileIDHide:fileIDHide activeAccount:appDelegate.activeAccount];
         
             dispatch_async(dispatch_get_main_queue(), ^{