Jelajahi Sumber

replace delete function with new CCActions.swift

Marino Faggiana 8 tahun lalu
induk
melakukan
15ed6a7389

+ 2 - 1
iOSClient/Actions/CCActions.swift

@@ -54,8 +54,9 @@ class CCActions: NSObject {
     // MARK: Delete File or Folder
     // --------------------------------------------------------------------------------------------
 
-    func deleteFileOrFolder(_ metadata : CCMetadata, serverUrl : String, delegate : AnyObject) {
+    func deleteFileOrFolder(_ metadata : CCMetadata, delegate : AnyObject) {
         
+        let serverUrl : String = CCCoreData.getServerUrl(fromDirectoryID: metadata.directoryID, activeAccount: appDelegate.activeAccount)!
         let metadataNet : CCMetadataNet = CCMetadataNet.init()
         
         if metadata.cryptated == true {

+ 0 - 13
iOSClient/Main/CCDetail.h

@@ -34,12 +34,8 @@
 #import "CCGraphics.h"
 #import "CCCoreData.h"
 
-@protocol CCDetailViewDelegate;
-
 @interface CCDetail : UIViewController <UIDocumentInteractionControllerDelegate, MWPhotoBrowserDelegate, ReaderViewControllerDelegate>
 
-@property (nonatomic, weak) id <CCDetailViewDelegate> delegate;
-
 @property (nonatomic, strong) CCMetadata *metadataDetail;
 @property BOOL sourceDirectoryLocal;
 @property BOOL isCameraUpload;
@@ -74,15 +70,6 @@
 - (void)downloadPhotoBrowserSuccess:(CCMetadata *)metadataVar selector:(NSString *)selector;
 - (void)progressTask:(NSString *)fileID serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated progress:(float)progress;
 
-- (void)deleteFileFailure:(NSInteger)errorCode;
-- (void)deleteFileSuccess:(CCMetadata *)metadataVar metadataNetVar:(CCMetadataNet *)metadataNetVar;
-
-@end
-
-@protocol CCDetailViewDelegate <NSObject>
-
-@optional - (void)deleteFileOrFolder:(CCMetadata *)metadata numFile:(NSInteger)numFile ofFile:(NSInteger)ofFile;
-
 @end
 
 

+ 11 - 9
iOSClient/Main/CCDetail.m

@@ -26,11 +26,13 @@
 #import "AppDelegate.h"
 #import "CCMain.h"
 
+#import "Nextcloud-Swift.h"
+
 #define TOOLBAR_HEIGHT 49.0f
 
 #define alertRequestPasswordPDF 1
 
-@interface CCDetail ()
+@interface CCDetail () <CCActionsDelegate>
 {
     UIToolbar *_toolbar;
     
@@ -680,7 +682,7 @@
     [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_delete_", nil)
                                                          style:UIAlertActionStyleDestructive
                                                        handler:^(UIAlertAction *action) {
-                                                           [self.delegate deleteFileOrFolder:metadata numFile:1 ofFile:1];
+                                                           [[CCActions sharedInstance] deleteFileOrFolder:metadata delegate:self];
                                                        }]];
 
     [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil)
@@ -938,21 +940,21 @@
 #pragma mark ===== Delete =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)deleteFileFailure:(NSInteger)errorCode
+- (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     NSLog(@"[LOG] delete failure");
 }
 
-- (void)deleteFileSuccess:(CCMetadata *)metadataVar metadataNetVar:(CCMetadataNet *)metadataNetVar
+- (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet
 {
     // if a message for a directory of these
-    if (![_dataSourceDirectoryID containsObject:metadataVar.directoryID])
+    if (![_dataSourceDirectoryID containsObject:metadataNet.metadata.directoryID])
         return;
     
     // if we are not in browserPhoto and it's removed photo/video in preview then "< Back"
-    if (!self.photoBrowser && [self.metadataDetail.fileID isEqualToString:metadataVar.fileID]) {
+    if (!self.photoBrowser && [self.metadataDetail.fileID isEqualToString:metadataNet.metadata.fileID]) {
         
-        if ([metadataVar.typeFile isEqualToString:metadataTypeFile_audio])
+        if ([metadataNet.metadata.typeFile isEqualToString:metadataTypeFile_audio])
             [app.player.mediaPlayer stop];
         
         NSArray *viewsToRemove = [self.view subviews];
@@ -974,7 +976,7 @@
             CCMetadata *metadata = [self.dataSourceImagesVideos objectAtIndex:index];
         
             // ricerca index
-            if ([metadataVar.fileID isEqualToString:metadata.fileID]) {
+            if ([metadataNet.metadata.fileID isEqualToString:metadata.fileID]) {
             
                 [self.dataSourceImagesVideos removeObjectAtIndex:index];
             
@@ -1036,7 +1038,7 @@
     [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_delete_", nil)
                                                          style:UIAlertActionStyleDestructive
                                                        handler:^(UIAlertAction *action) {
-                                                           [self.delegate deleteFileOrFolder:self.metadataDetail numFile:1 ofFile:1];
+                                                           [[CCActions sharedInstance] deleteFileOrFolder:self.metadataDetail delegate:self];
                                                        }]];
     
     [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil)

+ 1 - 1
iOSClient/Main/CCMain.h

@@ -62,7 +62,7 @@
 #import "CCPatenteGuida.h"
 #import "JSAlertView.h"
 
-@interface CCMain : UITableViewController <UITableViewDataSource, UITableViewDelegate, UIActionSheetDelegate, UIGestureRecognizerDelegate, UIDocumentInteractionControllerDelegate, UIViewControllerPreviewingDelegate, CCMoveDelegate, CTAssetsPickerControllerDelegate, BKPasscodeViewControllerDelegate, UISplitViewControllerDelegate, UIPopoverControllerDelegate, CCNetworkingDelegate, CCShareOCDelegate, CCAccountWebDelegate, CCBancomatDelegate, CCCartaDiCreditoDelegate, CCCartaIdentitaDelegate, CCContoCorrenteDelegate, CCNoteDelegate, CCPassaportoDelegate, CCPatenteGuidaDelegate, CCDetailViewDelegate, CCPeekPopDelegate, UIDocumentMenuDelegate, UIDocumentPickerDelegate>
+@interface CCMain : UITableViewController <UITableViewDataSource, UITableViewDelegate, UIActionSheetDelegate, UIGestureRecognizerDelegate, UIDocumentInteractionControllerDelegate, UIViewControllerPreviewingDelegate, CCMoveDelegate, CTAssetsPickerControllerDelegate, BKPasscodeViewControllerDelegate, UISplitViewControllerDelegate, UIPopoverControllerDelegate, CCNetworkingDelegate, CCShareOCDelegate, CCAccountWebDelegate, CCBancomatDelegate, CCCartaDiCreditoDelegate, CCCartaIdentitaDelegate, CCContoCorrenteDelegate, CCNoteDelegate, CCPassaportoDelegate, CCPatenteGuidaDelegate, CCPeekPopDelegate, UIDocumentMenuDelegate, UIDocumentPickerDelegate>
 
 @property (nonatomic ,strong) NSString *localServerUrl;
 

+ 7 - 19
iOSClient/Main/CCMain.m

@@ -1871,14 +1871,6 @@
 
 - (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    // is detailViewController active ?
-    if (_detailViewController) {
-        
-        dispatch_async(dispatch_get_main_queue(), ^{
-            [_detailViewController deleteFileFailure:errorCode];
-        });
-    }
-    
     [self deleteFileOrFolderSuccess:metadataNet]; 
 }
 
@@ -1896,14 +1888,6 @@
             [self getDataSourceWithReloadTableView:metadataNet.metadata.directoryID fileID:metadataNet.metadata.fileID selector:metadataNet.selector];
         }
 
-        // if detailViewController
-        if (_detailViewController) {
-            
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [_detailViewController deleteFileSuccess:metadataNet.metadata metadataNetVar:metadataNet];
-            });
-        }
-
         // next
         if ([_selectedMetadatas count] > 0) {
             
@@ -1917,9 +1901,14 @@
 
 - (void)deleteFileOrFolder:(CCMetadata *)metadata numFile:(NSInteger)numFile ofFile:(NSInteger)ofFile
 {
-    [_queueSelector addObject:selectorDelete];
+    if (metadata.cryptated) {
+        [_queueSelector addObject:selectorDeleteCrypto];
+        [_queueSelector addObject:selectorDeletePlist];
+    } else {
+        [_queueSelector addObject:selectorDelete];
+    }
     
-    [[CCActions sharedInstance] deleteFileOrFolder:metadata serverUrl:_localServerUrl delegate:self];
+    [[CCActions sharedInstance] deleteFileOrFolder:metadata delegate:self];
         
     [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_delete_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
 }
@@ -5515,7 +5504,6 @@
             [allRecordsDataSourceImagesVideos addObject:metadata];
     }
 
-    _detailViewController.delegate = self;
     _detailViewController.dataSourceImagesVideos = allRecordsDataSourceImagesVideos;
     _detailViewController.metadataDetail = _metadataSegue;
     _detailViewController.dateFilterQuery = nil;

+ 1 - 1
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.h

@@ -40,7 +40,7 @@
 #import "CCHud.h"
 #import "OCNetworking.h"
 
-@interface CCPhotosCameraUpload : UICollectionViewController <UICollectionViewDataSource, UICollectionViewDelegate, UIActionSheetDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate, CCManageLocationDelegate, PHPhotoLibraryChangeObserver, CCDetailViewDelegate, OCNetworkingDelegate>
+@interface CCPhotosCameraUpload : UICollectionViewController <UICollectionViewDataSource, UICollectionViewDelegate, UIActionSheetDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate, CCManageLocationDelegate, PHPhotoLibraryChangeObserver, OCNetworkingDelegate>
 
 @property (nonatomic, weak) CCDetail *detailViewController;
 @property (nonatomic, strong) PHFetchResult *assetsFetchResult;

+ 12 - 61
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m

@@ -25,7 +25,9 @@
 
 #import "AppDelegate.h"
 
-@interface CCPhotosCameraUpload ()
+#import "Nextcloud-Swift.h"
+
+@interface CCPhotosCameraUpload () <CCActionsDelegate>
 {
     CCMetadata *_metadata;
 
@@ -424,21 +426,7 @@
 
 - (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    [_hud hideHud];
-    
-    if (errorCode == 404)
-        [self deleteFileOrFolderSuccess:metadataNet];
-    
-    if (message)
-        [app messageNotification:@"_delete_" description:message visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeError];
-    
-    // if detailViewController
-    if (self.detailViewController)
-            [self.detailViewController deleteFileFailure:errorCode];
-    
-    [_queueMetadatas removeAllObjects];
-    
-    [self reloadDatasource];
+    [self deleteFileOrFolderSuccess:metadataNet];
 }
 
 - (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet
@@ -449,14 +437,6 @@
         
         [_hud hideHud];
 
-        CCMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadataNet.fileID, app.activeAccount] context:nil];
-    
-        if (metadata)
-            [CCCoreData deleteFile:metadata serverUrl:metadataNet.serverUrl directoryUser:app.directoryUser typeCloud:app.typeCloud activeAccount:app.activeAccount];
-    
-        if (self.detailViewController)
-            [self.detailViewController deleteFileSuccess:metadata metadataNetVar:metadataNet];
-    
         if ([_selectedMetadatas count] > 0) {
             
             [_selectedMetadatas removeObjectAtIndex:0];
@@ -479,44 +459,16 @@
 
 - (void)deleteFileOrFolder:(CCMetadata *)metadata numFile:(NSInteger)numFile ofFile:(NSInteger)ofFile
 {
-    if (metadata.cryptated == YES) {
-        
-        CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
-        
-        metadataNet.action = actionDeleteFileDirectory;
-        metadataNet.fileID = metadata.fileID;
-        metadataNet.fileNamePrint = metadata.fileNamePrint;
-        metadataNet.serverUrl = [CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:app.activeAccount];
-        
-        // data crypto
-        metadataNet.fileName = metadata.fileNameData;
-        metadataNet.selector = selectorDeleteCrypto;
-        
-        [_queueMetadatas addObject:metadataNet.selector];
-        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
-        
-        // plist
-        metadataNet.fileName = metadata.fileName;
-        metadataNet.selector = selectorDeletePlist;
-        
-        [_queueMetadatas addObject:metadataNet.selector];
-        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
-        
-    } else  {
-        
-        CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
-        
-        metadataNet.action = actionDeleteFileDirectory;
-        metadataNet.fileID = metadata.fileID;
-        metadataNet.fileName = metadata.fileName;
-        metadataNet.fileNamePrint = metadata.fileNamePrint;
-        metadataNet.selector = selectorDelete;
-        metadataNet.serverUrl = [CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:app.activeAccount];
-        
-        [_queueMetadatas addObject:metadataNet.selector];
-        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+    
+    if (metadata.cryptated) {
+        [_queueMetadatas addObject:selectorDeleteCrypto];
+        [_queueMetadatas addObject:selectorDeletePlist];
+    } else {
+        [_queueMetadatas addObject:selectorDelete];
     }
     
+    [[CCActions sharedInstance] deleteFileOrFolder:metadata delegate:self];
+
     [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_delete_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
 }
 
@@ -774,7 +726,6 @@
             [allRecordsDataSourceImagesVideos addObject:metadata];
     }
     
-    self.detailViewController.delegate = self;
     self.detailViewController.dataSourceImagesVideos = allRecordsDataSourceImagesVideos;
     self.detailViewController.metadataDetail = _metadata;
     self.detailViewController.dateFilterQuery = _metadata.date;