Ver código fonte

Improvements : SettingFavorite

Marino Faggiana 6 anos atrás
pai
commit
fd85d07ef7

+ 17 - 18
File Provider Extension/FileProviderExtension+Network.swift

@@ -71,25 +71,24 @@ extension FileProviderExtension {
         let fileNamePath = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: serverUrl, activeUrl: self.providerData.accountUrl)
 
         let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
-        ocNetworking?.settingFavorite(fileNamePath, favorite: favorite, success: {
-                    
-            // Change DB
-            metadata.favorite = favorite
-            _ = NCManageDatabase.sharedInstance.addMetadata(metadata)                    
-            
-        }, failure: { (errorMessage, errorCode) in
-            
-            // Errore, remove from listFavoriteIdentifierRank
-            self.providerData.listFavoriteIdentifierRank.removeValue(forKey: itemIdentifier.rawValue)
-
-            let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier, providerData: self.providerData)
-            
-            self.providerData.queueTradeSafe.sync(flags: .barrier) {
-                self.providerData.fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
-                self.providerData.fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
+        ocNetworking?.settingFavorite(fileNamePath, favorite: favorite, completion: { (message, errorCode) in
+            if errorCode == 0 {
+                // Change DB
+                metadata.favorite = favorite
+                _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
+            } else {
+                // Errore, remove from listFavoriteIdentifierRank
+                self.providerData.listFavoriteIdentifierRank.removeValue(forKey: itemIdentifier.rawValue)
+                
+                let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier, providerData: self.providerData)
+                
+                self.providerData.queueTradeSafe.sync(flags: .barrier) {
+                    self.providerData.fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
+                    self.providerData.fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
+                }
+                
+                self.providerData.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
             }
-            
-            self.providerData.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
         })
     }
     

+ 0 - 38
iOSClient/Actions/CCActions.swift

@@ -34,11 +34,6 @@ import Foundation
     func searchSuccessFailure(_ metadataNet: CCMetadataNet, metadatas: [Any], message: NSString, errorCode: NSInteger)
 }
 
-@objc protocol CCActionsSettingFavoriteDelegate {
-    
-    func settingFavoriteSuccessFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger)
-}
-
 @objc protocol CCActionsListingFavoritesDelegate {
     
     func listingFavoritesSuccessFailure(_ metadataNet: CCMetadataNet, metadatas: [Any], message: NSString, errorCode: NSInteger)
@@ -211,39 +206,6 @@ class CCActions: NSObject {
         metadataNet.delegate?.searchSuccessFailure(metadataNet, metadatas: metadatas, message: message, errorCode: errorCode)
     }
     
-    // --------------------------------------------------------------------------------------------
-    // MARK: Setting Favorite
-    // --------------------------------------------------------------------------------------------
-    
-    @objc func settingFavorite(_ metadata: tableMetadata, favorite: Bool, delegate: AnyObject) {
-        
-        let metadataNet: CCMetadataNet = CCMetadataNet.init(account: appDelegate.activeAccount)
-        
-        guard let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID) else {
-            return
-        }
-                
-        metadataNet.action = actionSettingFavorite
-        metadataNet.delegate = delegate
-        metadataNet.fileID = metadata.fileID
-        metadataNet.fileName = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
-        metadataNet.fileNameView = metadata.fileNameView
-        metadataNet.optionAny = "\(favorite)"
-        metadataNet.selector = selectorAddFavorite
-        metadataNet.serverUrl = serverUrl;
-        
-        appDelegate.addNetworkingOperationQueue(appDelegate.netQueue, delegate: self, metadataNet: metadataNet)
-    }
-    
-    @objc func settingFavoriteSuccessFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger) {
-        
-        if (errorCode != 0) {
-            appDelegate.messageNotification("_favorites_", description: message as String, visible: true, delay:TimeInterval(k_dismissAfterSecond), type:TWMessageBarMessageType.error, errorCode: errorCode)
-        }
-
-        metadataNet.delegate?.settingFavoriteSuccessFailure(metadataNet, message: message, errorCode: errorCode)
-    }
-
     // --------------------------------------------------------------------------------------------
     // MARK: Linsting Favorites
     // --------------------------------------------------------------------------------------------

+ 0 - 2
iOSClient/CCGlobal.h

@@ -181,7 +181,6 @@
 #define k_minCharsSearch                                2
 
 // Metadata.Net SELECTOR
-#define selectorAddFavorite                             @"addFavorite"
 #define selectorDelete                                  @"delete"
 #define selectorDownloadSynchronize                     @"downloadSynchronize"
 #define selectorGetUserAndGroup                         @"getUserAndGroup"
@@ -228,7 +227,6 @@
 #define actionReadShareServer                           @"readShareServer"
 #define actionSearch                                    @"search"
 #define actionSetNotificationServer                     @"setNotificationServer"
-#define actionSettingFavorite                           @"settingFavorite"
 #define actionShare                                     @"share"
 #define actionShareWith                                 @"shareWith"
 #define actionSubscribingNextcloudServer                @"subscribingNextcloudServer"

+ 23 - 17
iOSClient/Favorites/CCFavorites.m

@@ -27,7 +27,7 @@
 
 #import "NCBridgeSwift.h"
 
-@interface CCFavorites () <CCActionsSettingFavoriteDelegate>
+@interface CCFavorites ()
 {
     AppDelegate *appDelegate;
 
@@ -223,22 +223,9 @@
 }
 
 #pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Favorite <delegate> =====
+#pragma mark ===== Favorite =====
 #pragma--------------------------------------------------------------------------------------------
 
-- (void)settingFavoriteSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
-{
-    if (errorCode == 0) {
-        
-        [[NCManageDatabase sharedInstance] setMetadataFavoriteWithFileID:metadataNet.fileID favorite:[metadataNet.optionAny boolValue]];
-        [self reloadDatasource];
-        
-    } else {
-        
-         NSLog(@"[LOG] Setting Favorite failure error %d, %@", (int)errorCode, message);
-    }
-}
-
 - (void)addFavoriteFolder:(NSString *)serverUrl
 {
     NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
@@ -262,6 +249,26 @@
     [appDelegate addNetworkingOperationQueue:appDelegate.netQueue delegate:[CCSynchronize sharedSynchronize] metadataNet:metadataNet];
 }
 
+- (void)settingFavorite:(tableMetadata *)metadata favorite:(BOOL)favorite
+{
+    NSString *fileNameServerUrl = [CCUtility returnFileNamePathFromFileName:metadata.fileName serverUrl:[[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID] activeUrl:appDelegate.activeUrl];
+    
+    OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:appDelegate.activeUser withUserID:appDelegate.activeUserID withPassword:appDelegate.activePassword withUrl:appDelegate.activeUrl];
+    [ocNetworking settingFavorite:fileNameServerUrl favorite:favorite completion:^(NSString *message, NSInteger errorCode) {
+        if (errorCode == 0) {
+            [[NCManageDatabase sharedInstance] setMetadataFavoriteWithFileID:metadata.fileID favorite:favorite];
+            [self reloadDatasource];
+        } else {
+            if (errorCode == kOCErrorServerUnauthorized)
+                [appDelegate openLoginView:self loginType:k_login_Modify_Password selector:k_intro_login];
+        }
+    }];
+}
+
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== listingFavorites <delegate> =====
+#pragma--------------------------------------------------------------------------------------------
+
 - (void)listingFavoritesSuccessFailure:(CCMetadataNet *)metadataNet metadatas:(NSArray *)metadatas message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     // Check Active Account
@@ -432,8 +439,7 @@
     
     if (direction == MGSwipeDirectionLeftToRight) {
         
-        tableMetadata *metadata = [_dataSource objectAtIndex:indexPath.row];
-        [[CCActions sharedInstance] settingFavorite:metadata favorite:NO delegate:self];
+        [self settingFavorite:[_dataSource objectAtIndex:indexPath.row] favorite:NO];
     }
     
     return YES;

+ 27 - 70
iOSClient/Main/CCMain.m

@@ -37,7 +37,7 @@
 #import "NCNetworkingEndToEnd.h"
 #import "PKDownloadButton.h"
 
-@interface CCMain () <CCActionsRenameDelegate, CCActionsSearchDelegate, CCActionsSettingFavoriteDelegate, UITextViewDelegate, createFormUploadAssetsDelegate, MGSwipeTableCellDelegate, CCLoginDelegate, CCLoginDelegateWeb>
+@interface CCMain () <CCActionsRenameDelegate, CCActionsSearchDelegate, UITextViewDelegate, createFormUploadAssetsDelegate, MGSwipeTableCellDelegate, CCLoginDelegate, CCLoginDelegateWeb>
 {
     AppDelegate *appDelegate;
     
@@ -1104,12 +1104,6 @@
             [self reloadDatasource:serverUrl];
         }
         
-        // add Favorite
-        if ([selector isEqualToString:selectorAddFavorite]) {
-            [[CCActions sharedInstance] settingFavorite:metadata favorite:YES delegate:self];
-            [self reloadDatasource:serverUrl];
-        }
-        
         // open View File
         if ([selector isEqualToString:selectorLoadFileView] && [[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) {
             
@@ -2605,68 +2599,31 @@
 #pragma mark ===== Favorite =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)settingFavoriteSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)settingFavorite:(tableMetadata *)metadata favorite:(BOOL)favorite
 {
-    // Check Active Account
-    if (![metadataNet.account isEqualToString:appDelegate.activeAccount])
-        return;
+    NSString *fileNameServerUrl = [CCUtility returnFileNamePathFromFileName:metadata.fileName serverUrl:self.serverUrl activeUrl:appDelegate.activeUrl];
     
-    if (errorCode == 0) {
-    
-        _dateReadDataSource = nil;
-        
-        [[NCManageDatabase sharedInstance] setMetadataFavoriteWithFileID:metadataNet.fileID favorite:[metadataNet.optionAny boolValue]];
-        
-        if (_isSearchMode)
-            [self readFolder:metadataNet.serverUrl];
-        else
-            [self reloadDatasource:metadataNet.serverUrl];
-        
-        
-        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID]];
-        
-        if (metadata.directory && metadata.favorite) {
-            
-            NSString *dir = [CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadata.fileName];
-            
-            [appDelegate.activeFavorites addFavoriteFolder:dir];
-        }
-    } else {
-        
-        if (errorCode == kOCErrorServerUnauthorized)
-            [appDelegate openLoginView:self loginType:k_login_Modify_Password selector:k_intro_login];
-        
-        NSLog(@"[LOG] Setting Favorite failure error %d, %@", (int)errorCode, message);
-    }
-}
+    OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:appDelegate.activeUser withUserID:appDelegate.activeUserID withPassword:appDelegate.activePassword withUrl:appDelegate.activeUrl];
+    [ocNetworking settingFavorite:fileNameServerUrl favorite:favorite completion:^(NSString *message, NSInteger errorCode) {
+        if (errorCode == 0) {
+            [[NCManageDatabase sharedInstance] setMetadataFavoriteWithFileID:metadata.fileID favorite:favorite];
 
-- (void)addFavorite:(tableMetadata *)metadata
-{
-    if (metadata.directory) {
-        
-        [[CCActions sharedInstance] settingFavorite:metadata favorite:YES delegate:self];
-        
-    } else {
-    
-        NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
-        
-        if (serverUrl) {
-            
-            metadata.session = k_download_session;
-            metadata.sessionError = @"";
-            metadata.sessionSelector = selectorAddFavorite;
-            metadata.status = k_metadataStatusWaitDownload;
+            _dateReadDataSource = nil;
+            if (_isSearchMode)
+                [self readFolder:self.serverUrl];
+            else
+                [self reloadDatasource:self.serverUrl];
             
-            // Add Metadata for Download
-            (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
-            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
+            tableMetadata *metadataTemp = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
+            if (metadataTemp.directory && metadataTemp.favorite) {
+                NSString *dir = [CCUtility stringAppendServerUrl:self.serverUrl addFileName:metadataTemp.fileName];
+                [appDelegate.activeFavorites addFavoriteFolder:dir];
+            }
+        } else {
+            if (errorCode == kOCErrorServerUnauthorized)
+                [appDelegate openLoginView:self loginType:k_login_Modify_Password selector:k_intro_login];
         }
-    }
-}
-
-- (void)removeFavorite:(tableMetadata *)metadata
-{
-    [[CCActions sharedInstance] settingFavorite:metadata favorite:NO delegate:self];
+    }];
 }
 
 #pragma --------------------------------------------------------------------------------------------
@@ -3674,9 +3631,9 @@
     
     if (direction == MGSwipeDirectionLeftToRight) {
         if (_metadata.favorite)
-            [self removeFavorite:_metadata];
+            [self settingFavorite:_metadata favorite:NO];
         else
-            [self addFavorite:_metadata];
+            [self settingFavorite:_metadata favorite:YES];
     }
     
     return YES;
@@ -3803,8 +3760,8 @@
                                  height: 50.0
                                    type: AHKActionSheetButtonTypeDefault
                                 handler: ^(AHKActionSheet *as) {
-                                    if (_metadata.favorite) [self removeFavorite:_metadata];
-                                    else [self addFavorite:_metadata];
+                                    if (_metadata.favorite) [self settingFavorite:_metadata favorite:NO];
+                                    else [self settingFavorite:_metadata favorite:YES];
                                 }];
         
         if (!lockDirectory && !isFolderEncrypted) {
@@ -3986,8 +3943,8 @@
                                  height: 50.0
                                    type: AHKActionSheetButtonTypeDefault
                                 handler: ^(AHKActionSheet *as) {
-                                    if (_metadata.favorite) [self removeFavorite:_metadata];
-                                    else [self addFavorite:_metadata];
+                                    if (_metadata.favorite) [self settingFavorite:_metadata favorite:NO];
+                                    else [self settingFavorite:_metadata favorite:YES];
                                 }];
         
         if (!_metadataFolder.e2eEncrypted) {

+ 1 - 1
iOSClient/Networking/OCNetworking.h

@@ -51,7 +51,7 @@
 - (void)deleteFileOrFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl completion:(void (^)(NSString *message, NSInteger errorCode))completion;
 - (void)createFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSString *fileID, NSDate *date))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
 - (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
-- (void)settingFavorite:(NSString *)fileName favorite:(BOOL)favorite success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
+- (void)settingFavorite:(NSString *)fileName favorite:(BOOL)favorite completion:(void (^)(NSString *message, NSInteger errorCode))completion;
 - (void)listingFavorites:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSArray *metadatas))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
 
 @end

+ 3 - 21
iOSClient/Networking/OCNetworking.m

@@ -717,25 +717,7 @@
 #pragma mark ===== Setting Favorite =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)settingFavorite
-{
-    [self settingFavorite:_metadataNet.fileName favorite:[_metadataNet.optionAny boolValue] success:^{
-        
-        if ([self.delegate respondsToSelector:@selector(settingFavoriteSuccessFailure:message:errorCode:)])
-            [self.delegate settingFavoriteSuccessFailure:_metadataNet message:nil errorCode:0];
-        
-        [self complete];
-        
-    } failure:^(NSString *message, NSInteger errorCode) {
-        
-        if ([self.delegate respondsToSelector:@selector(settingFavoriteSuccessFailure:message:errorCode:)])
-             [self.delegate settingFavoriteSuccessFailure:_metadataNet message:message errorCode:errorCode];
-        
-        [self complete];
-    }];
-}
-
-- (void)settingFavorite:(NSString *)fileName favorite:(BOOL)favorite success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure
+- (void)settingFavorite:(NSString *)fileName favorite:(BOOL)favorite completion:(void (^)(NSString *message, NSInteger errorCode))completion
 {
     OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
     
@@ -746,7 +728,7 @@
 
     [communication settingFavoriteServer:server andFileOrFolderPath:fileName favorite:favorite withUserSessionToken:nil onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer, NSString *token) {
         
-        success();
+        completion(nil, 0);
         
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
         
@@ -766,7 +748,7 @@
         if ([error code] == NSURLErrorServerCertificateUntrusted && self.delegate)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
         
-        failure(message, errorCode);
+        completion(message, errorCode);
     }];
 }