Browse Source

Improved directory, cache, remove account

marinofaggiana 5 years ago
parent
commit
921a9d20e4
3 changed files with 14 additions and 9 deletions
  1. 1 1
      iOSClient/AppDelegate.m
  2. 3 3
      iOSClient/Settings/CCAdvanced.m
  3. 10 5
      iOSClient/Utility/NCUtility.swift

+ 1 - 1
iOSClient/AppDelegate.m

@@ -396,7 +396,7 @@ PKPushRegistry *pushRegistry;
     [self unsubscribingNextcloudServerPushNotification:account url:self.activeUrl withSubscribing:false];
     [self settingActiveAccount:nil activeUrl:nil activeUser:nil activeUserID:nil activePassword:nil];
     
-    [[NCUtility sharedInstance] removeAccount:account removeKeychain:true];
+    [[NCUtility sharedInstance] clearDBAccount:account removeUser:true];
     
     if (withChangeUser) {
         NSArray *listAccount = [[NCManageDatabase sharedInstance] getAccounts];

+ 3 - 3
iOSClient/Settings/CCAdvanced.m

@@ -204,9 +204,9 @@
     
     [self.hud visibleHudTitle:NSLocalizedString(@"_remove_cache_", nil) mode:MBProgressHUDModeIndeterminate color:nil];
     
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC),dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC),dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
-        [[NCUtility sharedInstance] removeAccount:appDelegate.activeAccount removeKeychain:false];
+        [[NCUtility sharedInstance] clearDBAccount:appDelegate.activeAccount removeUser:false];
         [[NCUtility sharedInstance] removeAllSettingsWithRemoveKeychain:false];
         [[NCAutoUpload sharedInstance] alignPhotoLibrary];
         [appDelegate.filterFileID removeAllObjects];
@@ -259,7 +259,7 @@
         
         [self.hud visibleIndeterminateHud];
         
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
             
             [[NCManageDatabase sharedInstance] removeDB];
             [NCUtility.sharedInstance removeAllSettingsWithRemoveKeychain:true];

+ 10 - 5
iOSClient/Utility/NCUtility.swift

@@ -375,22 +375,27 @@ class NCUtility: NSObject {
         return false
     }
     
-    @objc func removeAccount(_ account: String?, removeKeychain: Bool) {
+    @objc func clearDBAccount(_ account: String?, removeUser: Bool) {
         
-        NCManageDatabase.sharedInstance.clearTable(tableAccount.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableActivity.self, account: account)
+        NCManageDatabase.sharedInstance.clearTable(tableActivityPreview.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableActivitySubjectRich.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableCapabilities.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableDirectory.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableE2eEncryption.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableExternalSites.self, account: account)
+        NCManageDatabase.sharedInstance.clearTable(tableGPS.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableLocalFile.self, account: account)
-        NCManageDatabase.sharedInstance.clearTable(tableMetadata.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableMedia.self, account: account)
+        NCManageDatabase.sharedInstance.clearTable(tableMetadata.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tablePhotoLibrary.self, account: account)
         NCManageDatabase.sharedInstance.clearTable(tableShare.self, account: account)
-        
-        if (account != nil && removeKeychain) {
+        NCManageDatabase.sharedInstance.clearTable(tableTrash.self, account: account)
+
+        if (account != nil && removeUser) {
+            
+            NCManageDatabase.sharedInstance.clearTable(tableAccount.self, account: account)
+            
             CCUtility.clearAllKeysEnd(toEnd: account)
             CCUtility.clearAllKeysPushNotification(account)
             CCUtility.setCertificateError(account, error: false)