зеркало из https://github.com/nextcloud/ios.git
Improvements change/add account
This commit is contained in:
Родитель
e5a305b9a8
Коммит
4c15d97ec0
|
@ -122,7 +122,6 @@ extern NSString *const flowEndpoint;
|
|||
#define k_taskIdentifierNULL 99999
|
||||
|
||||
// TaskStatus
|
||||
#define k_taskStatusNone 0
|
||||
#define k_taskStatusCancel -1
|
||||
#define k_taskStatusResume -2
|
||||
#define k_taskStatusSuspend -3
|
||||
|
|
|
@ -3064,17 +3064,6 @@
|
|||
if ([NCBrandOptions sharedInstance].disable_multiaccount)
|
||||
return;
|
||||
|
||||
/*
|
||||
NSUInteger numInSession = [[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND session != ''", appDelegate.activeAccount] sorted:nil ascending:NO] count];
|
||||
NSUInteger numInQueue = [appDelegate.netQueue operationCount];
|
||||
|
||||
if (numInSession+numInQueue > 0) {
|
||||
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
NSArray *listAccount = [[NCManageDatabase sharedInstance] getAccounts];
|
||||
|
||||
NSMutableArray *menuArray = [NSMutableArray new];
|
||||
|
@ -3167,29 +3156,40 @@
|
|||
|
||||
- (void)changeDefaultAccount:(CCMenuItem *)sender
|
||||
{
|
||||
[_ImageTitleHomeCryptoCloud setUserInteractionEnabled:NO];
|
||||
// Verify session in progress
|
||||
if ([[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionTaskIdentifier > 0", appDelegate.activeAccount] sorted:nil ascending:NO] count] > 0) {
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
|
||||
tableAccount *tableAccount = [[NCManageDatabase sharedInstance] setAccountActive:[sender argument]];
|
||||
if (tableAccount) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
|
||||
tableAccount *tableAccount = [[NCManageDatabase sharedInstance] setAccountActive:[sender argument]];
|
||||
if (tableAccount) {
|
||||
|
||||
[appDelegate settingActiveAccount:tableAccount.account activeUrl:tableAccount.url activeUser:tableAccount.user activeUserID:tableAccount.userID activePassword:tableAccount.password];
|
||||
[appDelegate settingActiveAccount:tableAccount.account activeUrl:tableAccount.url activeUser:tableAccount.user activeUserID:tableAccount.userID activePassword:tableAccount.password];
|
||||
|
||||
// go to home sweet home
|
||||
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"initializeMain" object:nil];
|
||||
|
||||
[_ImageTitleHomeCryptoCloud setUserInteractionEnabled:YES];
|
||||
}
|
||||
// go to home sweet home
|
||||
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"initializeMain" object:nil];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
- (void)addNewAccount:(CCMenuItem *)sender
|
||||
{
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
// Verify session in progress
|
||||
if ([[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionTaskIdentifier > 0", appDelegate.activeAccount] sorted:nil ascending:NO] count] > 0) {
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
|
||||
[appDelegate openLoginView:self loginType:loginAdd];
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
[appDelegate openLoginView:self loginType:loginAdd];
|
||||
});
|
||||
}
|
||||
|
||||
#pragma --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -284,6 +284,12 @@
|
|||
else if (taskStatus == k_taskStatusSuspend) [task suspend];
|
||||
else if (taskStatus == k_taskStatusResume) [task resume];
|
||||
}];
|
||||
|
||||
if (taskStatus == k_taskStatusCancel) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
[[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"account = %@ AND session CONTAINS 'download'", _activeAccount]];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (upload) {
|
||||
|
@ -308,25 +314,14 @@
|
|||
else if (taskStatus == k_taskStatusSuspend) [task suspend];
|
||||
else if (taskStatus == k_taskStatusResume) [task resume];
|
||||
}];
|
||||
}
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 4 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
|
||||
if (download && taskStatus == k_taskStatusCancel) {
|
||||
|
||||
[[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"account = %@ AND session CONTAINS 'download'", _activeAccount]];
|
||||
}
|
||||
|
||||
if (upload && taskStatus == k_taskStatusCancel) {
|
||||
|
||||
[[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session CONTAINS 'upload'"] clearDateReadDirectoryID:nil];
|
||||
|
||||
// File System
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
if (taskStatus == k_taskStatusCancel) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
[[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session CONTAINS 'upload'"] clearDateReadDirectoryID:nil];
|
||||
[CCUtility removeAllFileID_UPLOAD_ActiveUser:activeUser activeUrl:activeUrl];
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
- (void)settingSession:(NSString *)sessionDescription sessionTaskIdentifier:(NSUInteger)sessionTaskIdentifier taskStatus:(NSInteger)taskStatus
|
||||
|
|
|
@ -340,10 +340,9 @@
|
|||
[[NCManageDatabase sharedInstance] clearTable:[tableQueueUpload class] account:appDelegate.activeAccount];
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5 * NSEC_PER_SEC),dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC),dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
|
||||
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
|
||||
[[NSURLCache sharedURLCache] setDiskCapacity:0];
|
||||
|
@ -464,7 +463,7 @@
|
|||
|
||||
[self.hud visibleIndeterminateHud];
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
|
|
|
@ -213,10 +213,17 @@
|
|||
{
|
||||
[self deselectFormRow:sender];
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
// Verify session in progress
|
||||
if ([[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionTaskIdentifier > 0", appDelegate.activeAccount] sorted:nil ascending:NO] count] > 0) {
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
|
||||
[appDelegate openLoginView:self loginType:loginAdd];
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
[appDelegate openLoginView:self loginType:loginAdd];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)addAccountForced
|
||||
|
@ -232,12 +239,17 @@
|
|||
{
|
||||
[self deselectFormRow:sender];
|
||||
|
||||
// Verify session in progress
|
||||
if ([[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionTaskIdentifier > 0", appDelegate.activeAccount] sorted:nil ascending:NO] count] > 0) {
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
|
||||
[appDelegate openLoginView:self loginType:loginModifyPasswordUser];
|
||||
|
||||
[self UpdateForm];
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
[appDelegate openLoginView:self loginType:loginModifyPasswordUser];
|
||||
});
|
||||
}
|
||||
|
||||
#pragma --------------------------------------------------------------------------------------------
|
||||
|
@ -266,24 +278,32 @@
|
|||
|
||||
- (void)deleteAccount:(NSString *)account
|
||||
{
|
||||
// Verify session in progress
|
||||
if ([[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionTaskIdentifier > 0", appDelegate.activeAccount] sorted:nil ascending:NO] count] > 0) {
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableAccount class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableActivity class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableCapabilities class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableDirectory class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableE2eEncryption class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableExternalSites class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableLocalFile class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableMetadata class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tablePhotoLibrary class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableQueueDownload class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableQueueUpload class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableShare class] account:account];
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableAccount class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableActivity class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableCapabilities class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableDirectory class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableE2eEncryption class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableExternalSites class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableLocalFile class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableMetadata class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tablePhotoLibrary class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableQueueDownload class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableQueueUpload class] account:account];
|
||||
[[NCManageDatabase sharedInstance] clearTable:[tableShare class] account:account];
|
||||
|
||||
// Clear active user
|
||||
[appDelegate settingActiveAccount:nil activeUrl:nil activeUser:nil activeUserID:nil activePassword:nil];
|
||||
// Clear active user
|
||||
[appDelegate settingActiveAccount:nil activeUrl:nil activeUser:nil activeUserID:nil activePassword:nil];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)answerDelAccount:(XLFormRowDescriptor *)sender
|
||||
|
@ -306,32 +326,27 @@
|
|||
|
||||
- (void)ChangeDefaultAccount:(NSString *)account
|
||||
{
|
||||
/*
|
||||
NSUInteger numInSession = [[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND session != ''", appDelegate.activeAccount] sorted:nil ascending:NO] count];
|
||||
NSUInteger numInQueue = [appDelegate.netQueue operationCount];
|
||||
|
||||
if (numInSession+numInQueue > 0) {
|
||||
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
[self UpdateForm];
|
||||
// Verify session in progress
|
||||
if ([[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionTaskIdentifier > 0", appDelegate.activeAccount] sorted:nil ascending:NO] count] > 0) {
|
||||
[JDStatusBarNotification showWithStatus:NSLocalizedString(@"_transfers_in_queue_", nil) dismissAfter:k_dismissAfterSecond styleName:JDStatusBarStyleDefault];
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
[appDelegate.netQueue cancelAllOperations];
|
||||
[[CCNetworking sharedNetworking] settingSessionsDownload:YES upload:YES taskStatus:k_taskStatusCancel activeAccount:appDelegate.activeAccount activeUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
|
||||
|
||||
// change account
|
||||
tableAccount *tableAccount = [[NCManageDatabase sharedInstance] setAccountActive:account];
|
||||
if (tableAccount) {
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||
|
||||
tableAccount *tableAccount = [[NCManageDatabase sharedInstance] setAccountActive:account];
|
||||
if (tableAccount) {
|
||||
|
||||
[appDelegate settingActiveAccount:tableAccount.account activeUrl:tableAccount.url activeUser:tableAccount.user activeUserID:tableAccount.userID activePassword:tableAccount.password];
|
||||
[appDelegate settingActiveAccount:tableAccount.account activeUrl:tableAccount.url activeUser:tableAccount.user activeUserID:tableAccount.userID activePassword:tableAccount.password];
|
||||
|
||||
// Init home
|
||||
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"initializeMain" object:nil];
|
||||
}
|
||||
|
||||
[self UpdateForm];
|
||||
// Init home
|
||||
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"initializeMain" object:nil];
|
||||
|
||||
[self UpdateForm];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#pragma --------------------------------------------------------------------------------------------
|
||||
|
|
Загрузка…
Ссылка в новой задаче