Browse Source

new Class

Marino Faggiana 6 years ago
parent
commit
539ec9cbe6

+ 11 - 11
iOSClient/Favorites/CCFavorites.m

@@ -440,16 +440,11 @@
             
             tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataSection.fileID]];
             if (metadata)
-                [self cancelTaskButton:metadata reloadTable:YES];
+                [[NCMainCommon sharedInstance] cancelTransferMetadata:metadata reloadDatasource:true];
         }
     }
 }
 
-- (void)cancelTaskButton:(tableMetadata *)metadata reloadTable:(BOOL)reloadTable
-{
-    [[NCMainCommon sharedInstance] cancelTransferMetadata:metadata reloadDatasource:true];
-}
-
 - (void)cancelAllTask:(id)sender
 {
     CGPoint location = [sender locationInView:self.tableView];
@@ -675,17 +670,22 @@
         return [tableView dequeueReusableCellWithIdentifier:@"CellMain"];
     }
     
-    NSString *shareLink = [appDelegate.sharesLink objectForKey:[serverUrl stringByAppendingString:metadata.fileName]];
-    NSString *shareUserAndGroup = [appDelegate.sharesUserAndGroup objectForKey:[serverUrl stringByAppendingString:metadata.fileName]];
-//    BOOL isShare =  [metadata.permissions containsString:k_permission_shared] && ![_fatherPermission containsString:k_permission_shared];
-//    BOOL isMounted = [metadata.permissions containsString:k_permission_mounted] && ![_fatherPermission containsString:k_permission_mounted];
+    tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, serverUrl]];
+    if (directory == nil) {
+        return [tableView dequeueReusableCellWithIdentifier:@"CellMain"];
+    }
+    
+    tableMetadata *metadataFolder = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", directory.fileID]];
+    if (metadataFolder == nil) {
+        return [tableView dequeueReusableCellWithIdentifier:@"CellMain"];
+    }
     
     // Download thumbnail
     if (metadata.thumbnailExists && ![[NSFileManager defaultManager] fileExistsAtPath:[CCUtility getDirectoryProviderStorageIconFileID:metadata.fileID fileNameView:metadata.fileNameView]]) { // && !_metadataFolder.e2eEncrypted) {
         [self downloadThumbnail:metadata serverUrl:serverUrl indexPath:indexPath];
     }
     
-    UITableViewCell *cell = [[NCMainCommon sharedInstance] cellForRowAtIndexPath:indexPath tableView:tableView metadata:metadata serverUrl:self.serverUrl autoUploadFileName:_autoUploadFileName autoUploadDirectory:_autoUploadDirectory shareLink:shareLink shareUserAndGroup:shareUserAndGroup isShare:NO isMounted:NO];
+    UITableViewCell *cell = [[NCMainCommon sharedInstance] cellForRowAtIndexPath:indexPath tableView:tableView metadata:metadata metadataFolder:metadataFolder serverUrl:self.serverUrl autoUploadFileName:_autoUploadFileName autoUploadDirectory:_autoUploadDirectory];
     
     // NORMAL - > MAIN
 

+ 0 - 3
iOSClient/Main/CCMain.h

@@ -78,9 +78,6 @@
 
 - (void)uploadFileAsset:(NSMutableArray *)assets serverUrl:(NSString *)serverUrl useSubFolder:(BOOL)useSubFolder session:(NSString *)session;
 
-- (void)cancelTaskButton:(tableMetadata *)metadata reloadTable:(BOOL)reloadTable;
-- (void)cancelAllTask:(id)sender;
-
 - (void)reloadDatasource;
 - (void)reloadDatasource:(NSString *)serverUrl;
 

+ 2 - 7
iOSClient/Main/CCMain.m

@@ -2195,16 +2195,11 @@
             
             tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataSection.fileID]];
             if (metadata)
-                [self cancelTaskButton:metadata reloadTable:YES];
+                [[NCMainCommon sharedInstance] cancelTransferMetadata:metadata reloadDatasource:true];
         }
     }
 }
 
-- (void)cancelTaskButton:(tableMetadata *)metadata reloadTable:(BOOL)reloadTable
-{
-    [[NCMainCommon sharedInstance] cancelTransferMetadata:metadata reloadDatasource:true];
-}
-
 - (void)cancelAllTask:(id)sender
 {
     CGPoint location = [sender locationInView:self.tableView];
@@ -4273,7 +4268,7 @@
         [self downloadThumbnail:metadata serverUrl:serverUrl indexPath:indexPath];
     }
     
-    UITableViewCell *cell = [[NCMainCommon sharedInstance] cellForRowAtIndexPath:indexPath tableView:tableView metadata:metadata serverUrl:self.serverUrl autoUploadFileName:_autoUploadFileName autoUploadDirectory:_autoUploadDirectory shareLink:shareLink shareUserAndGroup:shareUserAndGroup isShare:isShare isMounted:isMounted];
+    UITableViewCell *cell = [[NCMainCommon sharedInstance] cellForRowAtIndexPath:indexPath tableView:tableView metadata:metadata metadataFolder:_metadataFolder serverUrl:self.serverUrl autoUploadFileName:_autoUploadFileName autoUploadDirectory:_autoUploadDirectory];
     
     // NORMAL - > MAIN
     

+ 11 - 5
iOSClient/Main/NCMainCommon.swift

@@ -32,7 +32,7 @@ class NCMainCommon: NSObject {
     
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     
-    @objc func cellForRowAtIndexPath(_ indexPath: IndexPath, tableView: UITableView ,metadata: tableMetadata, serverUrl: String, autoUploadFileName: String, autoUploadDirectory: String, shareLink: String?, shareUserAndGroup: String?, isShare: Bool, isMounted: Bool) -> UITableViewCell {
+    @objc func cellForRowAtIndexPath(_ indexPath: IndexPath, tableView: UITableView ,metadata: tableMetadata, metadataFolder: tableMetadata, serverUrl: String, autoUploadFileName: String, autoUploadDirectory: String) -> UITableViewCell {
         
         // Create File System
         if metadata.directory {
@@ -68,6 +68,12 @@ class NCMainCommon: NSObject {
             cell.labelTitle.textColor = UIColor.black
             cell.labelTitle.text = metadata.fileNameView;
             
+            // Share
+            let sharesLink = appDelegate.sharesLink.object(forKey: serverUrl + metadata.fileName)
+            let sharesUserAndGroup = appDelegate.sharesUserAndGroup.object(forKey: serverUrl + metadata.fileName)
+            let isShare = metadata.permissions.contains(k_permission_shared) && !metadataFolder.permissions.contains(k_permission_shared)
+            let isMounted = metadata.permissions.contains(k_permission_mounted) && !metadataFolder.permissions.contains(k_permission_mounted)
+
             if metadata.directory {
                 
                 // lable Info
@@ -86,10 +92,10 @@ class NCMainCommon: NSObject {
                 } else if isMounted {
                     cell.file.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "folder_external"), multiplier: 3, color: NCBrandColor.sharedInstance.brandElement)
                     cell.imageTitleSegue = UIImage.init(named: "shareMounted")
-                } else if (shareUserAndGroup != nil) {
+                } else if (sharesUserAndGroup != nil) {
                     cell.file.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "folder_shared_with_me"), multiplier: 3, color: NCBrandColor.sharedInstance.brandElement)
                     cell.imageTitleSegue = UIImage.init(named: "share")
-                } else if (shareLink != nil) {
+                } else if (sharesLink != nil) {
                     cell.file.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "folder_public"), multiplier: 3, color: NCBrandColor.sharedInstance.brandElement)
                     cell.imageTitleSegue = UIImage.init(named: "sharebylink")
                 } else {
@@ -138,9 +144,9 @@ class NCMainCommon: NSObject {
                     cell.shared.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "share"), multiplier: 2, color: NCBrandColor.sharedInstance.icon)
                 } else if (isMounted) {
                     cell.shared.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "shareMounted"), multiplier: 2, color: NCBrandColor.sharedInstance.icon)
-                } else if (shareLink != nil) {
+                } else if (sharesLink != nil) {
                     cell.shared.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "sharebylink"), multiplier: 2, color: NCBrandColor.sharedInstance.icon)
-                } else if (shareUserAndGroup != nil) {
+                } else if (sharesUserAndGroup != nil) {
                     cell.shared.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "share"), multiplier: 2, color: NCBrandColor.sharedInstance.icon)
                 }
             }

+ 20 - 39
iOSClient/Transfers/CCTransfers.m

@@ -148,43 +148,7 @@
 
 - (void)triggerProgressTask:(NSNotification *)notification
 {
-    NSDictionary *dict = notification.userInfo;
-    NSString *fileID = [dict valueForKey:@"fileID"];
-//    NSString *serverUrl = [dict valueForKey:@"serverUrl"];
-    long status = [[dict valueForKey:@"status"] longValue];
-    NSString *statusString = @"";
-    float progress = [[dict valueForKey:@"progress"] floatValue];
-    long long totalBytes = [[dict valueForKey:@"totalBytes"] longLongValue];
-    long long totalBytesExpected = [[dict valueForKey:@"totalBytesExpected"] longLongValue];
-    
-    // Check
-    if (!fileID || [fileID isEqualToString: @""])
-        return;
-    
-    [appDelegate.listProgressMetadata setObject:[NSArray arrayWithObjects:[NSNumber numberWithFloat:progress], [dict valueForKey:@"totalBytes"], [dict valueForKey:@"totalBytesExpected"], nil] forKey:fileID];
-
-    NSIndexPath *indexPath = [sectionDataSource.fileIDIndexPath objectForKey:fileID];
-    
-    if (indexPath && indexPath.row == 0) {
-        
-        CCCellMainTransfer *cell = (CCCellMainTransfer *)[self.tableView cellForRowAtIndexPath:indexPath];
-        
-        if (status == k_metadataStatusInDownload) {
-            statusString = @"↓";
-        } else if (status == k_metadataStatusInUpload) {
-            statusString = @"↑";
-        }
-
-        cell.labelInfoFile.text = [NSString stringWithFormat:@"%@ - %@%@", [CCUtility transformedSize:totalBytesExpected], statusString, [CCUtility transformedSize:totalBytes]];
-        
-        if ([cell isKindOfClass:[CCCellMainTransfer class]]) {
-            cell.transferButton.progress = progress;
-        }
-        
-    } else {
-        
-        [self reloadDatasource];
-    }
+    [[NCMainCommon sharedInstance] triggerProgressTask:notification sectionDataSourceFileIDIndexPath:sectionDataSource.fileIDIndexPath tableView:self.tableView];
 }
 
 - (void)cancelTaskButton:(id)sender withEvent:(UIEvent *)event
@@ -199,13 +163,30 @@
         tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
         if (metadata)
-            [appDelegate.activeMain cancelTaskButton:metadata reloadTable:YES];
+            [[NCMainCommon sharedInstance] cancelTransferMetadata:metadata reloadDatasource:true];
     }
 }
 
 - (void)cancelAllTask:(id)sender
 {
-    [appDelegate.activeMain cancelAllTask:sender];
+    CGPoint location = [sender locationInView:self.tableView];
+    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];
+    
+    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
+    
+    [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_all_task_", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
+        [[NCMainCommon sharedInstance] cancelAllTransfer];
+    }]];
+    
+    [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { }]];
+    
+    alertController.popoverPresentationController.sourceView = self.view;
+    alertController.popoverPresentationController.sourceRect = [self.tableView rectForRowAtIndexPath:indexPath];
+    
+    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
+        [alertController.view layoutIfNeeded];
+    
+    [self presentViewController:alertController animated:YES completion:nil];
 }
 
 #pragma --------------------------------------------------------------------------------------------