|
@@ -1319,9 +1319,9 @@
|
|
|
|
|
|
cell = [self.tableView cellForRowAtIndexPath:indexPath];
|
|
cell = [self.tableView cellForRowAtIndexPath:indexPath];
|
|
|
|
|
|
- cell.fileImageView.image = [app.icoImagesCache objectForKey:metadataNet.fileID];
|
|
|
|
|
|
+ cell.file.image = [app.icoImagesCache objectForKey:metadataNet.fileID];
|
|
|
|
|
|
- if (cell.fileImageView.image == nil) {
|
|
|
|
|
|
+ if (cell.file.image == nil) {
|
|
|
|
|
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
|
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
|
|
|
|
|
|
@@ -4964,11 +4964,11 @@
|
|
// DEFAULT
|
|
// DEFAULT
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
- cell.fileImageView.image = nil;
|
|
|
|
- cell.statusImageView.image = nil;
|
|
|
|
- cell.offlineImageView.image = nil;
|
|
|
|
- cell.synchronizedImageView.image = nil;
|
|
|
|
- cell.sharedImageView.image = nil;
|
|
|
|
|
|
+ cell.file.image = nil;
|
|
|
|
+ cell.status.image = nil;
|
|
|
|
+ cell.favorite.image = nil;
|
|
|
|
+ cell.shared.image = nil;
|
|
|
|
+ cell.local.image = nil;
|
|
|
|
|
|
cell.labelTitle.enabled = YES;
|
|
cell.labelTitle.enabled = YES;
|
|
cell.labelTitle.text = @"";
|
|
cell.labelTitle.text = @"";
|
|
@@ -5010,7 +5010,7 @@
|
|
|
|
|
|
if (metadata.favorite) {
|
|
if (metadata.favorite) {
|
|
|
|
|
|
- cell.offlineImageView.image = [UIImage imageNamed:@"favorite"];
|
|
|
|
|
|
+ cell.favorite.image = [UIImage imageNamed:@"favorite"];
|
|
}
|
|
}
|
|
|
|
|
|
} else {
|
|
} else {
|
|
@@ -5056,9 +5056,9 @@
|
|
// assegnamo l'immagine anteprima se esiste, altrimenti metti quella standars
|
|
// assegnamo l'immagine anteprima se esiste, altrimenti metti quella standars
|
|
if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]]) {
|
|
if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]]) {
|
|
|
|
|
|
- cell.fileImageView.image = [app.icoImagesCache objectForKey:metadata.fileID];
|
|
|
|
|
|
+ cell.file.image = [app.icoImagesCache objectForKey:metadata.fileID];
|
|
|
|
|
|
- if (cell.fileImageView.image == nil) {
|
|
|
|
|
|
+ if (cell.file.image == nil) {
|
|
|
|
|
|
NSString *fileID = metadata.fileID;
|
|
NSString *fileID = metadata.fileID;
|
|
|
|
|
|
@@ -5073,7 +5073,7 @@
|
|
CCCellMainTransfer *cell = [tableView cellForRowAtIndexPath:indexPath];
|
|
CCCellMainTransfer *cell = [tableView cellForRowAtIndexPath:indexPath];
|
|
|
|
|
|
if (cell)
|
|
if (cell)
|
|
- cell.fileImageView.image = image;
|
|
|
|
|
|
+ cell.file.image = image;
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -5081,9 +5081,9 @@
|
|
} else {
|
|
} else {
|
|
|
|
|
|
if (metadata.directory)
|
|
if (metadata.directory)
|
|
- cell.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:metadata.iconName] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.file.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:metadata.iconName] color:[NCBrandColor sharedInstance].brand];
|
|
else
|
|
else
|
|
- cell.fileImageView.image = [UIImage imageNamed:metadata.iconName];
|
|
|
|
|
|
+ cell.file.image = [UIImage imageNamed:metadata.iconName];
|
|
|
|
|
|
if (metadata.thumbnailExists)
|
|
if (metadata.thumbnailExists)
|
|
[[CCActions sharedInstance] downloadTumbnail:metadata delegate:self];
|
|
[[CCActions sharedInstance] downloadTumbnail:metadata delegate:self];
|
|
@@ -5096,7 +5096,7 @@
|
|
// File Cyptated
|
|
// File Cyptated
|
|
if (metadata.cryptated && metadata.directory == NO && [metadata.type isEqualToString: k_metadataType_template] == NO) {
|
|
if (metadata.cryptated && metadata.directory == NO && [metadata.type isEqualToString: k_metadataType_template] == NO) {
|
|
|
|
|
|
- cell.statusImageView.image = [UIImage imageNamed:@"lock"];
|
|
|
|
|
|
+ cell.status.image = [UIImage imageNamed:@"lock"];
|
|
}
|
|
}
|
|
|
|
|
|
// Directory con passcode lock attivato
|
|
// Directory con passcode lock attivato
|
|
@@ -5104,7 +5104,7 @@
|
|
tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"serverUrl = %@", lockServerUrl]];
|
|
tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"serverUrl = %@", lockServerUrl]];
|
|
|
|
|
|
if (metadata.directory && (directory.lock && [[CCUtility getBlockCode] length]))
|
|
if (metadata.directory && (directory.lock && [[CCUtility getBlockCode] length]))
|
|
- cell.statusImageView.image = [UIImage imageNamed:@"passcode"];
|
|
|
|
|
|
+ cell.status.image = [UIImage imageNamed:@"passcode"];
|
|
|
|
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
// Favorite
|
|
// Favorite
|
|
@@ -5112,7 +5112,7 @@
|
|
|
|
|
|
if (metadata.favorite) {
|
|
if (metadata.favorite) {
|
|
|
|
|
|
- cell.offlineImageView.image = [UIImage imageNamed:@"favorite"];
|
|
|
|
|
|
+ cell.favorite.image = [UIImage imageNamed:@"favorite"];
|
|
}
|
|
}
|
|
|
|
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
@@ -5131,17 +5131,17 @@
|
|
|
|
|
|
if (metadata.directory) {
|
|
if (metadata.directory) {
|
|
|
|
|
|
- cell.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_shared_with_me"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
- cell.sharedImageView.userInteractionEnabled = NO;
|
|
|
|
|
|
+ cell.file.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_shared_with_me"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
+ cell.shared.userInteractionEnabled = NO;
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- cell.sharedImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"actionSheetShare"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.shared.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"actionSheetShare"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapActionConnectionMounted:)];
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapActionConnectionMounted:)];
|
|
[tap setNumberOfTapsRequired:1];
|
|
[tap setNumberOfTapsRequired:1];
|
|
- cell.sharedImageView.userInteractionEnabled = YES;
|
|
|
|
- [cell.sharedImageView addGestureRecognizer:tap];
|
|
|
|
|
|
+ cell.shared.userInteractionEnabled = YES;
|
|
|
|
+ [cell.shared addGestureRecognizer:tap];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -5149,17 +5149,17 @@
|
|
|
|
|
|
if (metadata.directory) {
|
|
if (metadata.directory) {
|
|
|
|
|
|
- cell.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_external"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
- cell.sharedImageView.userInteractionEnabled = NO;
|
|
|
|
|
|
+ cell.file.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_external"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
+ cell.shared.userInteractionEnabled = NO;
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- cell.sharedImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"shareMounted"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.shared.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"shareMounted"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapActionConnectionMounted:)];
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapActionConnectionMounted:)];
|
|
[tap setNumberOfTapsRequired:1];
|
|
[tap setNumberOfTapsRequired:1];
|
|
- cell.sharedImageView.userInteractionEnabled = YES;
|
|
|
|
- [cell.sharedImageView addGestureRecognizer:tap];
|
|
|
|
|
|
+ cell.shared.userInteractionEnabled = YES;
|
|
|
|
+ [cell.shared addGestureRecognizer:tap];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -5168,29 +5168,29 @@
|
|
if (metadata.directory) {
|
|
if (metadata.directory) {
|
|
|
|
|
|
if ([shareLink length] > 0)
|
|
if ([shareLink length] > 0)
|
|
- cell.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_public"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.file.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_public"] color:[NCBrandColor sharedInstance].brand];
|
|
if ([shareUserAndGroup length] > 0)
|
|
if ([shareUserAndGroup length] > 0)
|
|
- cell.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_shared_with_me"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.file.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder_shared_with_me"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
- cell.sharedImageView.userInteractionEnabled = NO;
|
|
|
|
|
|
+ cell.shared.userInteractionEnabled = NO;
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
if ([shareLink length] > 0)
|
|
if ([shareLink length] > 0)
|
|
- cell.sharedImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"shareLink"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.shared.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"shareLink"] color:[NCBrandColor sharedInstance].brand];
|
|
if ([shareUserAndGroup length] > 0)
|
|
if ([shareUserAndGroup length] > 0)
|
|
- cell.sharedImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"actionSheetShare"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.shared.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"actionSheetShare"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapActionShared:)];
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapActionShared:)];
|
|
[tap setNumberOfTapsRequired:1];
|
|
[tap setNumberOfTapsRequired:1];
|
|
- cell.sharedImageView.userInteractionEnabled = YES;
|
|
|
|
- [cell.sharedImageView addGestureRecognizer:tap];
|
|
|
|
|
|
+ cell.shared.userInteractionEnabled = YES;
|
|
|
|
+ [cell.shared addGestureRecognizer:tap];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- cell.sharedImageView.userInteractionEnabled = NO;
|
|
|
|
|
|
+ cell.shared.userInteractionEnabled = NO;
|
|
}
|
|
}
|
|
|
|
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
@@ -5199,8 +5199,8 @@
|
|
|
|
|
|
if ([metadata.session length] > 0 && [metadata.session containsString:@"download"]) {
|
|
if ([metadata.session length] > 0 && [metadata.session containsString:@"download"]) {
|
|
|
|
|
|
- if (metadata.cryptated) cell.statusImageView.image = [UIImage imageNamed:@"statusdownloadcrypto"];
|
|
|
|
- else cell.statusImageView.image = [UIImage imageNamed:@"statusdownload"];
|
|
|
|
|
|
+ if (metadata.cryptated) cell.status.image = [UIImage imageNamed:@"statusdownloadcrypto"];
|
|
|
|
+ else cell.status.image = [UIImage imageNamed:@"statusdownload"];
|
|
|
|
|
|
// sessionTaskIdentifier : RELOAD + STOP
|
|
// sessionTaskIdentifier : RELOAD + STOP
|
|
if (metadata.sessionTaskIdentifier != k_taskIdentifierDone) {
|
|
if (metadata.sessionTaskIdentifier != k_taskIdentifierDone) {
|
|
@@ -5244,7 +5244,7 @@
|
|
|
|
|
|
if (metadata.sessionTaskIdentifier == k_taskIdentifierError || metadata.sessionTaskIdentifierPlist == k_taskIdentifierError) {
|
|
if (metadata.sessionTaskIdentifier == k_taskIdentifierError || metadata.sessionTaskIdentifierPlist == k_taskIdentifierError) {
|
|
|
|
|
|
- cell.statusImageView.image = [UIImage imageNamed:@"statuserror"];
|
|
|
|
|
|
+ cell.status.image = [UIImage imageNamed:@"statuserror"];
|
|
|
|
|
|
if ([metadata.sessionError length] == 0)
|
|
if ([metadata.sessionError length] == 0)
|
|
cell.labelInfoFile.text = [NSString stringWithFormat:@"%@, %@", NSLocalizedString(@"_error_",nil), NSLocalizedString(@"_file_not_downloaded_",nil)];
|
|
cell.labelInfoFile.text = [NSString stringWithFormat:@"%@, %@", NSLocalizedString(@"_error_",nil), NSLocalizedString(@"_file_not_downloaded_",nil)];
|
|
@@ -5259,8 +5259,8 @@
|
|
|
|
|
|
if ([metadata.session length] > 0 && [metadata.session rangeOfString:@"upload"].location != NSNotFound) {
|
|
if ([metadata.session length] > 0 && [metadata.session rangeOfString:@"upload"].location != NSNotFound) {
|
|
|
|
|
|
- if (metadata.cryptated) cell.statusImageView.image = [UIImage imageNamed:@"statusuploadcrypto"];
|
|
|
|
- else cell.statusImageView.image = [UIImage imageNamed:@"statusupload"];
|
|
|
|
|
|
+ if (metadata.cryptated) cell.status.image = [UIImage imageNamed:@"statusuploadcrypto"];
|
|
|
|
+ else cell.status.image = [UIImage imageNamed:@"statusupload"];
|
|
|
|
|
|
if (metadata.cryptated)[cell.cancelTaskButton setBackgroundImage:[UIImage imageNamed:@"removetaskcrypto"] forState:UIControlStateNormal];
|
|
if (metadata.cryptated)[cell.cancelTaskButton setBackgroundImage:[UIImage imageNamed:@"removetaskcrypto"] forState:UIControlStateNormal];
|
|
else [cell.cancelTaskButton setBackgroundImage:[UIImage imageNamed:@"removetask"] forState:UIControlStateNormal];
|
|
else [cell.cancelTaskButton setBackgroundImage:[UIImage imageNamed:@"removetask"] forState:UIControlStateNormal];
|
|
@@ -5271,8 +5271,8 @@
|
|
if (metadata.cryptated)[cell.reloadTaskButton setBackgroundImage:[UIImage imageNamed:@"reloadtaskcrypto"] forState:UIControlStateNormal];
|
|
if (metadata.cryptated)[cell.reloadTaskButton setBackgroundImage:[UIImage imageNamed:@"reloadtaskcrypto"] forState:UIControlStateNormal];
|
|
else [cell.reloadTaskButton setBackgroundImage:[UIImage imageNamed:@"reloadtask"] forState:UIControlStateNormal];
|
|
else [cell.reloadTaskButton setBackgroundImage:[UIImage imageNamed:@"reloadtask"] forState:UIControlStateNormal];
|
|
|
|
|
|
- if (metadata.cryptated) cell.statusImageView.image = [UIImage imageNamed:@"statusstopcrypto"];
|
|
|
|
- else cell.statusImageView.image = [UIImage imageNamed:@"statusstop"];
|
|
|
|
|
|
+ if (metadata.cryptated) cell.status.image = [UIImage imageNamed:@"statusstopcrypto"];
|
|
|
|
+ else cell.status.image = [UIImage imageNamed:@"statusstop"];
|
|
|
|
|
|
cell.reloadTaskButton.hidden = NO;
|
|
cell.reloadTaskButton.hidden = NO;
|
|
cell.stopTaskButton.hidden = YES;
|
|
cell.stopTaskButton.hidden = YES;
|
|
@@ -5288,7 +5288,7 @@
|
|
|
|
|
|
// se non c'è una preview in bianconero metti l'immagine di default
|
|
// se non c'è una preview in bianconero metti l'immagine di default
|
|
if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]] == NO)
|
|
if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]] == NO)
|
|
- cell.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"uploaddisable"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
+ cell.file.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"uploaddisable"] color:[NCBrandColor sharedInstance].brand];
|
|
|
|
|
|
cell.labelTitle.enabled = NO;
|
|
cell.labelTitle.enabled = NO;
|
|
cell.labelInfoFile.text = [NSString stringWithFormat:@"%@", lunghezzaFile];
|
|
cell.labelInfoFile.text = [NSString stringWithFormat:@"%@", lunghezzaFile];
|
|
@@ -5310,7 +5310,7 @@
|
|
if (metadata.sessionTaskIdentifier == k_taskIdentifierError || metadata.sessionTaskIdentifierPlist == k_taskIdentifierError) {
|
|
if (metadata.sessionTaskIdentifier == k_taskIdentifierError || metadata.sessionTaskIdentifierPlist == k_taskIdentifierError) {
|
|
|
|
|
|
cell.labelTitle.enabled = NO;
|
|
cell.labelTitle.enabled = NO;
|
|
- cell.statusImageView.image = [UIImage imageNamed:@"statuserror"];
|
|
|
|
|
|
+ cell.status.image = [UIImage imageNamed:@"statuserror"];
|
|
|
|
|
|
if ([metadata.sessionError length] == 0)
|
|
if ([metadata.sessionError length] == 0)
|
|
cell.labelInfoFile.text = [NSString stringWithFormat:@"%@, %@", NSLocalizedString(@"_error_",nil), NSLocalizedString(@"_file_not_uploaded_",nil)];
|
|
cell.labelInfoFile.text = [NSString stringWithFormat:@"%@, %@", NSLocalizedString(@"_error_",nil), NSLocalizedString(@"_file_not_uploaded_",nil)];
|
|
@@ -5493,50 +5493,6 @@
|
|
[self setTitle];
|
|
[self setTitle];
|
|
}
|
|
}
|
|
|
|
|
|
-#pragma --------------------------------------------------------------------------------------------
|
|
|
|
-#pragma mark ===== Synchronize Folder Cell =====
|
|
|
|
-#pragma --------------------------------------------------------------------------------------------
|
|
|
|
-
|
|
|
|
-- (void)synchronizeFolderGraphicsServerUrl:(NSString *)serverUrl animation:(BOOL)animation
|
|
|
|
-{
|
|
|
|
- BOOL cryptated = NO;
|
|
|
|
- CCCellMain *cell;
|
|
|
|
-
|
|
|
|
- for (NSString* fileID in _sectionDataSource.allRecordsDataSource) {
|
|
|
|
-
|
|
|
|
- tableMetadata *recordMetadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
|
|
|
|
-
|
|
|
|
- if (recordMetadata.directory == NO)
|
|
|
|
- continue;
|
|
|
|
-
|
|
|
|
- if ([[CCUtility stringAppendServerUrl:_serverUrl addFileName:recordMetadata.fileNameData] isEqualToString:serverUrl]) {
|
|
|
|
-
|
|
|
|
- NSIndexPath *indexPath = [_sectionDataSource.fileIDIndexPath objectForKey:recordMetadata.fileID];
|
|
|
|
- cell = (CCCellMain *)[self.tableView cellForRowAtIndexPath:indexPath];
|
|
|
|
- cryptated = recordMetadata.cryptated;
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (!cell)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- if (animation) {
|
|
|
|
-
|
|
|
|
- NSURL *myURL;
|
|
|
|
-
|
|
|
|
- if (cryptated)
|
|
|
|
- myURL = [[NSBundle mainBundle] URLForResource: @"synchronizedcrypto" withExtension:@"gif"];
|
|
|
|
- else
|
|
|
|
- myURL = [[NSBundle mainBundle] URLForResource: @"synchronized" withExtension:@"gif"];
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- cell.synchronizedImageView.image = nil;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
#pragma mark ===== Navigation ====
|
|
#pragma mark ===== Navigation ====
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
#pragma --------------------------------------------------------------------------------------------
|