|
@@ -23,6 +23,8 @@
|
|
|
|
|
|
#import "CCFavorites.h"
|
|
|
#import "AppDelegate.h"
|
|
|
+#import "CCSynchronize.h"
|
|
|
+
|
|
|
#import "NCBridgeSwift.h"
|
|
|
|
|
|
@interface CCFavorites () <CCActionsDeleteDelegate, CCActionsSettingFavoriteDelegate>
|
|
@@ -46,6 +48,8 @@
|
|
|
|
|
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(triggerProgressTask:) name:@"NotificationProgressTask" object:nil];
|
|
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeTheming) name:@"changeTheming" object:nil];
|
|
|
+
|
|
|
+ app.activeFavorites = self;
|
|
|
}
|
|
|
return self;
|
|
|
}
|
|
@@ -197,6 +201,107 @@
|
|
|
[self reloadDatasource];
|
|
|
}
|
|
|
|
|
|
+- (void)readListingFavorites
|
|
|
+{
|
|
|
+ // test
|
|
|
+ if (app.activeAccount.length == 0)
|
|
|
+ return;
|
|
|
+
|
|
|
+ // verify is offline procedure is in progress selectorDownloadSynchronize
|
|
|
+ if ([[app verifyExistsInQueuesDownloadSelector:selectorDownloadSynchronize] count] > 0)
|
|
|
+ return;
|
|
|
+
|
|
|
+ [[CCActions sharedInstance] listingFavorites:@"" delegate:self];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)addFavoriteFolder:(NSString *)serverUrl
|
|
|
+{
|
|
|
+ NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
|
|
|
+ NSString *selector;
|
|
|
+ CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
|
|
|
+
|
|
|
+ metadataNet.action = actionReadFolder;
|
|
|
+ metadataNet.directoryID = directoryID;
|
|
|
+ metadataNet.priority = NSOperationQueuePriorityNormal;
|
|
|
+
|
|
|
+ if ([CCUtility getFavoriteOffline])
|
|
|
+ selector = selectorReadFolderWithDownload;
|
|
|
+ else
|
|
|
+ selector = selectorReadFolder;
|
|
|
+
|
|
|
+ metadataNet.selector = selector;
|
|
|
+ metadataNet.serverUrl = serverUrl;
|
|
|
+
|
|
|
+ [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)listingFavoritesSuccess:(CCMetadataNet *)metadataNet metadatas:(NSArray *)metadatas
|
|
|
+{
|
|
|
+ // verify active user
|
|
|
+ tableAccount *record = [[NCManageDatabase sharedInstance] getAccountActive];
|
|
|
+
|
|
|
+ if (![record.account isEqualToString:metadataNet.account])
|
|
|
+ return;
|
|
|
+
|
|
|
+ NSString *father = @"";
|
|
|
+ NSMutableArray *filesEtag = [NSMutableArray new];
|
|
|
+
|
|
|
+ for (tableMetadata *metadata in metadatas) {
|
|
|
+
|
|
|
+ // type of file
|
|
|
+ NSInteger typeFilename = [CCUtility getTypeFileName:metadata.fileName];
|
|
|
+
|
|
|
+ // do not insert cryptated favorite file
|
|
|
+ if (typeFilename == k_metadataTypeFilenameCrypto || typeFilename == k_metadataTypeFilenamePlist)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ // insert for test NOT favorite
|
|
|
+ [filesEtag addObject:metadata.fileID];
|
|
|
+
|
|
|
+ // Get ServerUrl
|
|
|
+ NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
|
|
|
+ serverUrl = [CCUtility stringAppendServerUrl:serverUrl addFileName:metadata.fileNameData];
|
|
|
+
|
|
|
+ if (![serverUrl containsString:father]) {
|
|
|
+
|
|
|
+ if (metadata.directory) {
|
|
|
+
|
|
|
+ NSString *selector;
|
|
|
+
|
|
|
+ if ([CCUtility getFavoriteOffline])
|
|
|
+ selector = selectorReadFolderWithDownload;
|
|
|
+ else
|
|
|
+ selector = selectorReadFolder;
|
|
|
+
|
|
|
+ [[CCSynchronize sharedSynchronize] readFolderServerUrl:serverUrl selector:selector];
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if ([CCUtility getFavoriteOffline])
|
|
|
+ [[CCSynchronize sharedSynchronize] readFile:metadata withDownload:YES];
|
|
|
+ else
|
|
|
+ [[CCSynchronize sharedSynchronize] readFile:metadata withDownload:NO];
|
|
|
+ }
|
|
|
+
|
|
|
+ father = serverUrl;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Verify remove favorite
|
|
|
+ NSArray *allRecordFavorite = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND favorite = true", app.activeAccount] sorted:nil ascending:NO];
|
|
|
+
|
|
|
+ for (tableMetadata *metadata in allRecordFavorite)
|
|
|
+ if (![filesEtag containsObject:metadata.fileID])
|
|
|
+ [[NCManageDatabase sharedInstance] setMetadataFavoriteWithFileID:metadata.fileID favorite:NO];
|
|
|
+
|
|
|
+ [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"clearDateReadDataSource" object:nil];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)listingFavoritesFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
|
|
|
+{
|
|
|
+ NSLog(@"Read Favorites Failure");
|
|
|
+}
|
|
|
+
|
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
|
#pragma mark ==== Download Thumbnail <Delegate> ====
|
|
|
#pragma --------------------------------------------------------------------------------------------
|