Prechádzať zdrojové kódy

Improvements Delete

Marino Faggiana 6 rokov pred
rodič
commit
1492ccaa03

+ 1 - 1
iOSClient/Favorites/CCFavorites.m

@@ -447,7 +447,7 @@
         NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
         tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND e2eEncrypted == 1 AND serverUrl == %@", appDelegate.activeAccount, serverUrl]];
         
-        [[NCMainCommon sharedInstance ] deleteFileWithMetadatas:[[NSArray alloc] initWithObjects:metadata, nil] e2ee:tableDirectory.e2eEncrypted serverUrl:serverUrl folderFileID:tableDirectory.fileID completion:^(NSInteger errorCode, NSString *message) {
+        [[NCMainCommon sharedInstance ] deleteFileWithFilesID:[[NSArray alloc] initWithObjects:metadata.fileID, nil] e2ee:tableDirectory.e2eEncrypted serverUrl:serverUrl folderFileID:tableDirectory.fileID classActive:self completion:^(NSInteger errorCode, NSString *message) {
             [self reloadDatasource];
         }];
     }]];

+ 1 - 5
iOSClient/Main/CCDetail.m

@@ -599,7 +599,6 @@
     [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil)
                                                          style:UIAlertActionStyleCancel
                                                        handler:^(UIAlertAction *action) {
-                                                            [alertController dismissViewControllerAnimated:YES completion:nil];
                                                        }]];
     
     alertController.popoverPresentationController.barButtonItem = deleteButton;
@@ -889,10 +888,8 @@
 {
     NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
     tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND e2eEncrypted == 1 AND serverUrl == %@", appDelegate.activeAccount, serverUrl]];
-    if (!tableDirectory)
-        return;
     
-    [[NCMainCommon sharedInstance ] deleteFileWithMetadatas:[[NSArray alloc] initWithObjects:metadata, nil] e2ee:tableDirectory.e2eEncrypted serverUrl:serverUrl folderFileID:tableDirectory.fileID completion:^(NSInteger errorCode, NSString *message) {
+    [[NCMainCommon sharedInstance ] deleteFileWithFilesID:[[NSArray alloc] initWithObjects:metadata.fileID, nil] e2ee:tableDirectory.e2eEncrypted serverUrl:serverUrl folderFileID:tableDirectory.fileID classActive:self completion:^(NSInteger errorCode, NSString *message) {
         
         if (errorCode == 0) {
             
@@ -947,7 +944,6 @@
             NSLog(@"[LOG] DeleteFileOrFolder failure error %d, %@", (int)errorCode, message);
         }
     }];
-
 }
 
 #pragma --------------------------------------------------------------------------------------------

+ 8 - 6
iOSClient/Main/CCMain.m

@@ -1763,25 +1763,27 @@
     if (_isSelectedMode && [_selectedFileIDsMetadatas count] == 0)
         return;
      
-    NSArray *metadatas;
+    NSArray *filesID;
     if ([_selectedFileIDsMetadatas count] > 0) {
-        metadatas = [_selectedFileIDsMetadatas allValues];
+        filesID = [_selectedFileIDsMetadatas allKeys];
     } else {
-        metadatas = [[NSArray alloc] initWithObjects:_metadata, nil];
+        filesID = [[NSArray alloc] initWithObjects:_metadata.fileID, nil];
     }
     
     // remove optimization
     _dateReadDataSource = nil;
     
-    [[NCMainCommon sharedInstance ] deleteFileWithMetadatas:metadatas e2ee:_metadataFolder.e2eEncrypted serverUrl:self.serverUrl folderFileID:_metadataFolder.fileID completion:^(NSInteger errorCode, NSString *message) {
-        // End Select Table View
-        [self tableViewSelect:NO];
+    [[NCMainCommon sharedInstance ] deleteFileWithFilesID:filesID e2ee:_metadataFolder.e2eEncrypted serverUrl:self.serverUrl folderFileID:_metadataFolder.fileID classActive:self completion:^(NSInteger errorCode, NSString *message) {
+        
         // Reload
         if (_isSearchMode)
             [self readFolder:self.serverUrl];
         else
             [self reloadDatasource:self.serverUrl];
     }];
+    
+    // End Select Table View
+    [self tableViewSelect:NO];
 }
 
 #pragma --------------------------------------------------------------------------------------------

+ 21 - 7
iOSClient/Main/NCMainCommon.swift

@@ -493,14 +493,16 @@ class NCMainCommon: NSObject {
     
     //MARK: -
     
-    @objc func deleteFile(metadatas: NSArray, e2ee: Bool, serverUrl: String, folderFileID: String, completion: @escaping (_ errorCode: Int, _ message: String)->()) {
+    @objc func deleteFile(filesID: NSArray, e2ee: Bool, serverUrl: String, folderFileID: String, classActive: Any, completion: @escaping (_ errorCode: Int, _ message: String)->()) {
+        
+        let copyFilesID = NSArray(array:filesID as! [Any], copyItems: true)
         
         if e2ee {
             DispatchQueue.global().async {
                 let error = NCNetworkingEndToEnd.sharedManager().lockFolderEncrypted(onServerUrl: serverUrl, fileID: folderFileID, user: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl)
                 DispatchQueue.main.async {
                     if error == nil {
-                        self.delete(metadatas: metadatas, serverUrl:serverUrl, e2ee: e2ee, completion: completion)
+                        self.delete(filesID: copyFilesID, serverUrl:serverUrl, e2ee: e2ee, classActive:classActive, completion: completion)
                     } else {
                         self.appDelegate.messageNotification("_delete_", description: error?.localizedDescription, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: Int(k_CCErrorInternalError))
                         return
@@ -508,11 +510,11 @@ class NCMainCommon: NSObject {
                 }
             }
         } else {
-            delete(metadatas: metadatas, serverUrl:serverUrl, e2ee: e2ee, completion: completion)
+            delete(filesID: copyFilesID, serverUrl:serverUrl, e2ee: e2ee, classActive:classActive, completion: completion)
         }
     }
     
-    private func delete(metadatas: NSArray, serverUrl: String,e2ee: Bool,  completion: @escaping (_ errorCode: Int, _ message: String)->()) {
+    private func delete(filesID: NSArray, serverUrl: String, e2ee: Bool, classActive: Any, completion: @escaping (_ errorCode: Int, _ message: String)->()) {
         
         var count: Int = 0
         var completionErrorCode: Int = 0
@@ -520,7 +522,11 @@ class NCMainCommon: NSObject {
         
         let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: appDelegate.activeUser, withUserID: appDelegate.activeUserID, withPassword: appDelegate.activePassword, withUrl: appDelegate.activeUrl)
         
-        for case let metadata as tableMetadata in metadatas {
+        for case let fileID as String in filesID {
+        
+            guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", fileID)) else {
+                return
+            }
             
             guard let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID) else {
                 continue
@@ -551,6 +557,7 @@ class NCMainCommon: NSObject {
                     if (e2ee) {
                         NCManageDatabase.sharedInstance.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameIdentifier == %@", metadata.account, serverUrl, metadata.fileName))
                     }
+                    
                 } else {
                     
                     self.appDelegate.activePhotos.fileIDHide.remove(metadata.fileID)
@@ -560,7 +567,7 @@ class NCMainCommon: NSObject {
                     completionMessage = message!
                 }
                 
-                if count == metadatas.count {
+                if count == filesID.count {
                     if e2ee {
                         DispatchQueue.global().async {
                             NCNetworkingEndToEnd.sharedManager().rebuildAndSendMetadata(onServerUrl: serverUrl, account: self.appDelegate.activeAccount, user: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl)
@@ -575,7 +582,14 @@ class NCMainCommon: NSObject {
             })
         }
         
-        self.reloadDatasource(ServerUrl: serverUrl)
+        // reload for filesID
+        if classActive is CCMain {
+            (classActive as! CCMain).reloadDatasource()
+        }
+        
+        if classActive is CCPhotos {
+            (classActive as! CCPhotos).reloadDatasource()
+        }
     }
 }
     

+ 2 - 2
iOSClient/Photos/CCPhotos.m

@@ -396,9 +396,9 @@
 #pragma mark ===== Delete =====
 #pragma--------------------------------------------------------------------------------------------
 
-- (void)deleteFile:(NSArray *)metadatas e2ee:(BOOL)e2ee
+- (void)deleteFile:(NSArray *)filesID e2ee:(BOOL)e2ee
 {
-    [[NCMainCommon sharedInstance ] deleteFileWithMetadatas:metadatas e2ee:false serverUrl:@"" folderFileID:@"" completion:^(NSInteger errorCode, NSString *message) {
+    [[NCMainCommon sharedInstance ] deleteFileWithFilesID:filesID e2ee:false serverUrl:@"" folderFileID:@"" classActive:self completion:^(NSInteger errorCode, NSString *message) {
         [self reloadDatasource];
         [self editingModeNO];
     }];