瀏覽代碼

dev Photos

Marino Faggiana 6 年之前
父節點
當前提交
e7a9bae624

+ 0 - 1
File Provider Extension/FileProviderExtension+Network.swift

@@ -74,7 +74,6 @@ extension FileProviderExtension {
         
         NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID == %@", metadata.fileID), clearDateReadDirectoryID: nil)
         NCManageDatabase.sharedInstance.deleteLocalFile(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
-        NCManageDatabase.sharedInstance.deletePhotos(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
     }
     
     // --------------------------------------------------------------------------------------------

+ 2 - 1
iOSClient/Actions/CCActions.swift

@@ -441,7 +441,8 @@ class CCActions: NSObject {
         
         NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID == %@", metadata.fileID), clearDateReadDirectoryID: metadata.directoryID)
         NCManageDatabase.sharedInstance.deleteLocalFile(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
-        NCManageDatabase.sharedInstance.deletePhotos(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
+        NCManageDatabase.sharedInstance.deletePhotos(fileID: metadata.fileID)
+        appDelegate.activePhotos.fileIDHide.add(metadata.fileID)
         // E2EE (if exists the record)
         NCManageDatabase.sharedInstance.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameIdentifier == %@", metadata.account, serverUrl, metadata.fileName))
     }

+ 5 - 47
iOSClient/Database/NCManageDatabase.swift

@@ -856,7 +856,6 @@ class NCManageDatabase: NSObject {
             
             self.deleteMetadata(predicate: NSPredicate(format: "directoryID == %@", result.directoryID), clearDateReadDirectoryID: result.directoryID)
             self.deleteLocalFile(predicate: NSPredicate(format: "fileID == %@", result.fileID))
-            self.deletePhotos(predicate: NSPredicate(format: "fileID == %@", result.fileID))
         }
         
         // Delete table Dirrectory
@@ -1953,7 +1952,7 @@ class NCManageDatabase: NSObject {
     
     //MARK: -
     //MARK: Table Photos
-    @objc func getTablePhotos(addMetadatas: [tableMetadata]) -> [tableMetadata]? {
+    @objc func getTablePhotos(addMetadatasFromUpload: [tableMetadata]) -> [tableMetadata]? {
 
         guard let tableAccount = self.getAccountActive() else {
             return nil
@@ -1967,7 +1966,7 @@ class NCManageDatabase: NSObject {
 
         if (results.count > 0) {
             var returnMetadatas = Array(results.map { tableMetadata.init(value:$0) })
-            for metadata in addMetadatas {
+            for metadata in addMetadatasFromUpload {
                 let result = realm.objects(tablePhotos.self).filter("fileID == %@", metadata.fileID).first
                 if result == nil {
                     returnMetadatas.append(metadata)
@@ -2003,30 +2002,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func addPhotos(_ metadata: tableMetadata) {
-        
-        guard self.getAccountActive() != nil else {
-            return
-        }
-        
-        if metadata.isInvalidated {
-            return
-        }
-        
-        let realm = try! Realm()
-        
-        do {
-            try realm.write {
-                let photo = tablePhotos.init(value: metadata)
-                realm.add(photo, update: true)
-            }
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
-            return
-        }
-    }
-    
-    @objc func deletePhotos(predicate: NSPredicate) {
+    @objc func deletePhotos(fileID: String) {
         
         guard self.getAccountActive() != nil else {
             return
@@ -2036,7 +2012,7 @@ class NCManageDatabase: NSObject {
         
         realm.beginWrite()
         
-        let results = realm.objects(tablePhotos.self).filter(predicate)
+        let results = realm.objects(tablePhotos.self).filter("fileID = %@", fileID)
         
         realm.delete(results)
         
@@ -2047,25 +2023,7 @@ class NCManageDatabase: NSObject {
             return
         }
     }
-    
-    @objc func setPhotosStatus(fileID: String, status: Int) {
-        
-        let realm = try! Realm()
-        
-        do {
-            try realm.write {
-                
-                let result = realm.objects(tableMetadata.self).filter("fileID == %@ ", fileID).first
-                if (result != nil) {
-                    result!.status = status
-                }
-            }
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
-            return
-        }
-    }
-    
+ 
     //MARK: -
     //MARK: Table Photo Library
     

+ 2 - 1
iOSClient/Main/CCMain.m

@@ -1230,7 +1230,8 @@
             
             [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileID] clearDateReadDirectoryID:nil];
             [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileID]];
-            [[NCManageDatabase sharedInstance] deletePhotosWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileID]];
+            [[NCManageDatabase sharedInstance] deletePhotosWithFileID:fileID];
+            [appDelegate.activePhotos.fileIDHide addObject:fileID];
         }
         
         if ([selector isEqualToString:selectorLoadViewImage]) {

+ 2 - 2
iOSClient/Networking/CCNetworking.m

@@ -1062,9 +1062,9 @@
 #ifndef EXTENSION
         AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
         [appDelegate.listProgressMetadata removeObjectForKey:metadata.fileID];
-        // Workaround for add new Photos
+        // Hardcoded for add new Photos
         if ([metadata.typeFile isEqualToString:k_metadataTypeFile_image] || [metadata.typeFile isEqualToString:k_metadataTypeFile_video]) {
-            [appDelegate.activePhotos.addMetadatas addObject:metadata];
+            [appDelegate.activePhotos.addMetadatasFromUpload addObject:metadata];
         }
 #endif
         

+ 2 - 1
iOSClient/Photos/CCPhotos.h

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

+ 13 - 10
iOSClient/Photos/CCPhotos.m

@@ -33,7 +33,6 @@
 
     tableMetadata *metadata;
     NSMutableArray *selectedMetadatas;
-    NSMutableArray *fileIDHide;
     CCSectionDataSourceMetadata *sectionDataSource;
     
     CCHud *hud;
@@ -83,10 +82,10 @@
 {
     [super viewDidLoad];
     
-    selectedMetadatas = [NSMutableArray new];
-    fileIDHide = [NSMutableArray new];
     saveEtagForStartDirectory = [NSMutableDictionary new];
-    self.addMetadatas = [NSMutableArray new];
+    selectedMetadatas = [NSMutableArray new];
+    self.fileIDHide = [NSMutableArray new];
+    self.addMetadatasFromUpload = [NSMutableArray new];
     hud = [[CCHud alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]];
     
     // empty Data Source
@@ -399,13 +398,13 @@
     
     for (tableMetadata *metadata in selectedMetadatas) {
     
-        [fileIDHide addObject:metadata.fileID];
+        [self.fileIDHide addObject:metadata.fileID];
        
         [ocNetworking deleteFileOrFolder:metadata.fileName serverUrl:[[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID] success:^{
             
             [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID] clearDateReadDirectoryID:metadata.directoryID];
             [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
-            [[NCManageDatabase sharedInstance] deletePhotosWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
+            [[NCManageDatabase sharedInstance] deletePhotosWithFileID:metadata.fileID];
 
             [[NSFileManager defaultManager] removeItemAtPath:[CCUtility getDirectoryProviderStorageFileID:metadata.fileID] error:nil];
             
@@ -415,7 +414,7 @@
             
         } failure:^(NSString *message, NSInteger errorCode) {
             
-            [fileIDHide removeObject:metadata.fileID];
+            [self.fileIDHide removeObject:metadata.fileID];
 
             if (++cont == numDelete) {
                 [self reloadDatasource];
@@ -571,7 +570,11 @@
             
             _isSearchMode = YES;
             [self editingModeNO];
-
+            
+            // Clear all Hardcoded
+            [self.fileIDHide removeAllObjects];
+            [self.addMetadatasFromUpload removeAllObjects];
+            
             [[CCActions sharedInstance] search:startDirectory fileName:@"" etag:metadata.etag depth:@"infinity" date:[NSDate distantPast] contenType:@[@"image/%", @"video/%"] selector:selectorSearchContentType delegate:self];
             
         } else {
@@ -596,8 +599,8 @@
     
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
-            NSArray *metadatas = [[NCManageDatabase sharedInstance] getTablePhotosWithAddMetadatas:self.addMetadatas];
-            sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:metadatas listProgressMetadata:nil groupByField:@"date" fileIDHide:fileIDHide activeAccount:appDelegate.activeAccount];
+            NSArray *metadatas = [[NCManageDatabase sharedInstance] getTablePhotosWithAddMetadatasFromUpload:self.addMetadatasFromUpload];
+            sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:metadatas listProgressMetadata:nil groupByField:@"date" fileIDHide:self.fileIDHide activeAccount:appDelegate.activeAccount];
         
             dispatch_async(dispatch_get_main_queue(), ^{
                

+ 4 - 2
iOSClient/Synchronize/CCSynchronize.m

@@ -153,7 +153,8 @@
             
             [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID] clearDateReadDirectoryID:nil];
             [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
-            [[NCManageDatabase sharedInstance] deletePhotosWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
+            [[NCManageDatabase sharedInstance] deletePhotosWithFileID:metadata.fileID];
+            [appDelegate.activePhotos.fileIDHide addObject:metadata.fileID];
         }
         
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -311,7 +312,8 @@
                 
                 [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID] clearDateReadDirectoryID:nil];
                 [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID]];
-                [[NCManageDatabase sharedInstance] deletePhotosWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID]];
+                [[NCManageDatabase sharedInstance] deletePhotosWithFileID:metadataNet.fileID];
+                [appDelegate.activePhotos.fileIDHide addObject:metadataNet.fileID];
                 
                 NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadataNet.directoryID];
                 if (serverUrl)