marinofaggiana 4 years ago
parent
commit
7583b43713

+ 0 - 1
File Provider Extension/FileProviderEnumerator.swift

@@ -292,7 +292,6 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
                     // Prepare DB
                     if offset == 0 {
                         NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND status == %d", account, serverUrl, k_metadataStatusNormal))
-                        NCManageDatabase.sharedInstance.setDateReadDirectory(serverUrl: serverUrl, account: account)
                         let metadatasInDownload = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND (status == %d OR status == %d OR status == %d OR status == %d)", account, serverUrl, k_metadataStatusWaitDownload, k_metadataStatusInDownload, k_metadataStatusDownloading, k_metadataStatusDownloadError), sorted: nil, ascending: false)
                         let metadatasInUpload = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND (status == %d OR status == %d OR status == %d OR status == %d)", account, serverUrl, k_metadataStatusWaitUpload, k_metadataStatusInUpload, k_metadataStatusUploading, k_metadataStatusUploadError), sorted: nil, ascending: false)
                         if metadatasInDownload != nil {

+ 8 - 8
Nextcloud.xcodeproj/project.pbxproj

@@ -2494,7 +2494,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2545,7 +2545,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2588,7 +2588,7 @@
 				CODE_SIGN_ENTITLEMENTS = iOSClient/Brand/Share.entitlements;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2632,7 +2632,7 @@
 				CODE_SIGN_ENTITLEMENTS = iOSClient/Brand/Share.entitlements;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2682,7 +2682,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2732,7 +2732,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2774,7 +2774,7 @@
 				CODE_SIGN_ENTITLEMENTS = iOSClient/Brand/iOSClient.entitlements;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				ENABLE_BITCODE = YES;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -2819,7 +2819,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = NO;
-				CURRENT_PROJECT_VERSION = 62;
+				CURRENT_PROJECT_VERSION = 63;
 				DEVELOPMENT_TEAM = 6JLRKY9ZV7;
 				ENABLE_BITCODE = YES;
 				FRAMEWORK_SEARCH_PATHS = (

+ 0 - 1
iOSClient/AppDelegate.m

@@ -1687,7 +1687,6 @@
     if (([actualVersion compare:@"2.19.1" options:NSNumericSearch] == NSOrderedAscending)) {
 
         [[NCManageDatabase sharedInstance] clearTable:[tableMetadata class] account:nil];
-        [[NCManageDatabase sharedInstance] setClearAllDateReadDirectory];
     }
     
     if (([actualVersion compare:@"2.22.0" options:NSNumericSearch] == NSOrderedAscending)) {

+ 1 - 1
iOSClient/CCGlobal.h

@@ -84,7 +84,7 @@
 
 // Database Realm
 #define k_databaseDefault                               @"nextcloud.realm"
-#define k_databaseSchemaVersion                         107
+#define k_databaseSchemaVersion                         108
 
 // Intro selector
 #define k_intro_login                                   0

+ 0 - 1
iOSClient/Database/NCDatabase.swift

@@ -206,7 +206,6 @@ class tableDirectEditingEditors: Object {
 class tableDirectory: Object {
     
     @objc dynamic var account = ""
-    @objc dynamic var dateReadDirectory: NSDate? = nil
     @objc dynamic var e2eEncrypted: Bool = false
     @objc dynamic var etag = ""
     @objc dynamic var favorite: Bool = false

+ 4 - 109
iOSClient/Database/NCManageDatabase.swift

@@ -1224,30 +1224,6 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func clearDateRead(serverUrl: String, account: String) {
-        
-        let realm = try! Realm()
-
-        do {
-            try realm.write {
-
-                var predicate = NSPredicate()
-            
-                predicate = NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl)
-                
-                guard let result = realm.objects(tableDirectory.self).filter(predicate).first else {
-                    return
-                }
-                
-                result.dateReadDirectory = nil
-                result.etag = ""
-                realm.add(result, update: .all)
-            }
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
-        }
-    }
-    
     @objc func getTableDirectory(predicate: NSPredicate) -> tableDirectory? {
         
         let realm = try! Realm()
@@ -1274,26 +1250,6 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func setDateReadDirectory(serverUrl: String, account: String) {
-        
-        let realm = try! Realm()
-
-        realm.beginWrite()
-
-        guard let result = realm.objects(tableDirectory.self).filter("account == %@ AND serverUrl == %@", account, serverUrl).first else {
-            realm.cancelWrite()
-            return
-        }
-            
-        result.dateReadDirectory = NSDate()
-        
-        do {
-            try realm.commitWrite()
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
-        }
-    }
-    
     @objc func renameDirectory(ocId: String, serverUrl: String) {
         
         let realm = try! Realm()
@@ -1314,25 +1270,6 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func setClearAllDateReadDirectory() {
-        
-        let realm = try! Realm()
-
-        do {
-            try realm.write {
-            
-                let results = realm.objects(tableDirectory.self)
-
-                for result in results {
-                    result.dateReadDirectory = nil;
-                    result.etag = ""
-                }
-            }
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
-        }
-    }
-    
     @objc func setDirectory(serverUrl: String, offline: Bool, account: String) {
         
         let realm = try! Realm()
@@ -1894,10 +1831,7 @@ class NCManageDatabase: NSObject {
     
     @discardableResult
     @objc func addMetadata(_ metadata: tableMetadata) -> tableMetadata? {
-            
-        let serverUrl = metadata.serverUrl
-        let account = metadata.account
-        
+
         let realm = try! Realm()
 
         do {
@@ -1908,9 +1842,7 @@ class NCManageDatabase: NSObject {
             print("[LOG] Could not write to database: ", error)
             return nil
         }
-        
-        self.setDateReadDirectory(serverUrl: serverUrl, account: account)
-        
+                
         return tableMetadata.init(value: metadata)
     }
     
@@ -1933,9 +1865,6 @@ class NCManageDatabase: NSObject {
             return nil
         }
         
-        for (serverUrl, account) in directoryToClearDate {
-            self.setDateReadDirectory(serverUrl: serverUrl, account: account)
-        }
         
         return Array(metadatas.map { tableMetadata.init(value:$0) })
     }
@@ -2008,10 +1937,6 @@ class NCManageDatabase: NSObject {
             print("[LOG] Could not write to database: ", error)
             return
         }
-        
-        for (serverUrl, account) in directoryToClearDate {
-            self.setDateReadDirectory(serverUrl: serverUrl, account: account)
-        }
     }
     
     @discardableResult
@@ -2079,15 +2004,11 @@ class NCManageDatabase: NSObject {
             return nil
         }
         
-        self.setDateReadDirectory(serverUrl: result!.serverUrl, account: result!.account)
         return tableMetadata.init(value: result!)
     }
     
     @objc func updateMetadata(_ metadata: tableMetadata) -> tableMetadata? {
         
-        let account = metadata.account
-        let serverUrl = metadata.serverUrl
-        
         let realm = try! Realm()
 
         do {
@@ -2098,9 +2019,7 @@ class NCManageDatabase: NSObject {
             print("[LOG] Could not write to database: ", error)
             return nil
         }
-        
-        self.setDateReadDirectory(serverUrl: serverUrl, account: account)
-        
+                
         return tableMetadata.init(value: metadata)
     }
     
@@ -2132,9 +2051,6 @@ class NCManageDatabase: NSObject {
         
         result.sessionTaskIdentifier = sessionTaskIdentifier
         result.status = status
-
-        let account = result.account
-        let serverUrl = result.serverUrl
         
         do {
             try realm.commitWrite()
@@ -2142,9 +2058,6 @@ class NCManageDatabase: NSObject {
             print("[LOG] Could not write to database: ", error)
             return
         }
-        
-        // Update Date Read Directory
-        self.setDateReadDirectory(serverUrl: serverUrl, account: account)
     }
     
     @objc func setMetadataFavorite(ocId: String, favorite: Bool) {
@@ -2159,9 +2072,6 @@ class NCManageDatabase: NSObject {
         }
         
         result.favorite = favorite
-
-        let account = result.account
-        let serverUrl = result.serverUrl
         
         do {
             try realm.commitWrite()
@@ -2169,9 +2079,6 @@ class NCManageDatabase: NSObject {
             print("[LOG] Could not write to database: ", error)
             return
         }
-        
-        // Update Date Read Directory
-        setDateReadDirectory(serverUrl: serverUrl, account: account)
     }
    
     @objc func setMetadataEncrypted(ocId: String, encrypted: Bool) {
@@ -2186,9 +2093,6 @@ class NCManageDatabase: NSObject {
         }
            
         result.e2eEncrypted = encrypted
-
-        let account = result.account
-        let serverUrl = result.serverUrl
            
         do {
             try realm.commitWrite()
@@ -2196,9 +2100,6 @@ class NCManageDatabase: NSObject {
             print("[LOG] Could not write to database: ", error)
             return
         }
-           
-        // Update Date Read Directory
-        setDateReadDirectory(serverUrl: serverUrl, account: account)
     }
        
     @objc func setMetadataFileNameView(serverUrl: String, fileName: String, newFileNameView: String, account: String) {
@@ -2213,19 +2114,13 @@ class NCManageDatabase: NSObject {
         }
                 
         result.fileNameView = newFileNameView
-        
-        let account = result.account
-        let serverUrl = result.serverUrl
-    
+            
         do {
             try realm.commitWrite()
         } catch let error {
             print("[LOG] Could not write to database: ", error)
             return
         }
-    
-        // Update Date Read Directory
-        setDateReadDirectory(serverUrl: serverUrl, account: account)
     }
     
     @objc func getMetadata(predicate: NSPredicate) -> tableMetadata? {

+ 8 - 37
iOSClient/Main/CCMain.m

@@ -53,7 +53,6 @@
     
     // Datasource
     CCSectionDataSourceMetadata *sectionDataSource;
-    NSDate *_dateReadDataSource;
     
     // Search
     NSString *_searchFileName;
@@ -366,9 +365,7 @@
 // Settings Advanced : removeAllFiles
 //
 - (void)initializeMain:(NSNotification *)notification
-{
-    _dateReadDataSource = nil;
-    
+{    
     // test
     if (appDelegate.activeAccount.length == 0)
         return;
@@ -499,7 +496,6 @@
     BOOL favorite = [userInfo[@"favorite"] boolValue];
     
     if (errorCode == 0) {
-        _dateReadDataSource = nil;
         if (self.searchController.isActive) {
             [self readFolder:self.serverUrl];
         } 
@@ -1085,7 +1081,6 @@
     // Search Mode
     if (self.searchController.isActive) {
         
-        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:serverUrl account:appDelegate.activeAccount];
         _searchFileName = @""; // forced reload searchg
         [self updateSearchResultsForSearchController:self.searchController];
         
@@ -1278,7 +1273,6 @@
         [self.searchController setActive:NO];
     
         _searchFileName = @"";
-        _dateReadDataSource = nil;
         _searchResultMetadatas = [NSMutableArray new];
         
         [self reloadDatasource:_serverUrl ocId:nil];
@@ -2057,13 +2051,11 @@
 
 - (void)reloadDatasource:(NSNotification *)notification
 {
-    _dateReadDataSource = Nil;
-    
     NSDictionary *userInfo = notification.userInfo;
     NSString *ocId = userInfo[@"ocId"];
     NSString *serverUrl = userInfo[@"serverUrl"];
     
-    [self reloadDatasource:_serverUrl ocId:ocId];
+    [self reloadDatasource:serverUrl ocId:ocId];
 }
 
 - (void)reloadDatasource:(NSString *)serverUrl ocId:(NSString *)ocId
@@ -2123,36 +2115,15 @@
     else
         _metadataFolder = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"ocId == %@", tableDirectory.ocId]];
     
-    // Remove optimization for encrypted directory
-    if (_metadataFolder.e2eEncrypted)
-        _dateReadDataSource = nil;
-
-    NSDate *dateDateRecordDirectory = tableDirectory.dateReadDirectory;
-    
-    if ([dateDateRecordDirectory compare:_dateReadDataSource] == NSOrderedDescending || dateDateRecordDirectory == nil || _dateReadDataSource == nil) {
-        
-        NSLog(@"[LOG] Rebuild Data Source File : %@", _serverUrl);
-
-        _dateReadDataSource = [NSDate date];
-    
-        // Data Source
-        
-        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
-            CCSectionDataSourceMetadata *sectionDataSourceTemp = [self queryDatasourceWithReloadData:NO serverUrl:serverUrl];
+        CCSectionDataSourceMetadata *sectionDataSourceTemp = [self queryDatasourceWithReloadData:NO serverUrl:serverUrl];
             
-            dispatch_async(dispatch_get_main_queue(), ^{
-                sectionDataSource = sectionDataSourceTemp;
-                [self tableViewReloadData];
-            });
+        dispatch_async(dispatch_get_main_queue(), ^{
+            sectionDataSource = sectionDataSourceTemp;
+            [self tableViewReloadData];
         });
-        
-    } else {
-        
-        [self tableViewReloadData];
-
-         NSLog(@"[LOG] [OPTIMIZATION] Rebuild Data Source File : %@ - %@", _serverUrl, _dateReadDataSource);
-    }
+    });
     
     // BLINK
     if (self.blinkFileNamePath != nil) {

+ 2 - 6
iOSClient/Main/Menu/CCMain+Menu.swift

@@ -325,9 +325,7 @@ extension CCMain {
                             if(isOffline) {
                                 CCSynchronize.shared()?.readFolder(serverUrl, selector: selectorReadFolderWithDownload, account: appDelegate.activeAccount)
                             }
-                            DispatchQueue.main.async {
-                                self.tableView.reloadRows(at: [indexPath], with: .none)
-                            }
+                            NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_reloadDataSource), object: nil, userInfo: ["ocId":metadata.ocId,"serverUrl":metadata.serverUrl])
                         }
                     )
                 )
@@ -496,9 +494,7 @@ extension CCMain {
                                 
                             } else {
                                 NCManageDatabase.sharedInstance.setLocalFile(ocId: metadata.ocId, offline: !localFile!.offline)
-                                DispatchQueue.main.async {
-                                    self.tableView.reloadRows(at: [indexPath], with: .none)
-                                }
+                                NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_reloadDataSource), object: nil, userInfo: ["ocId":metadata.ocId,"serverUrl":metadata.serverUrl])
                             }
                         }
                     )

+ 1 - 5
iOSClient/Networking/NCNetworking.swift

@@ -402,7 +402,6 @@ import Alamofire
                     
                     // Add directory
                     NCManageDatabase.sharedInstance.addDirectory(encrypted: metadataFolder.e2eEncrypted, favorite: metadataFolder.favorite, ocId: metadataFolder.ocId, fileId: metadataFolder.fileId, etag: metadataFolder.etag, permissions: metadataFolder.permissions, serverUrl: serverUrl, richWorkspace: metadataFolder.richWorkspace, account: account)
-                    NCManageDatabase.sharedInstance.setDateReadDirectory(serverUrl: serverUrl, account: account)
                     
                     // Add other directories
                     for metadata in metadatasFolder {
@@ -760,10 +759,7 @@ import Alamofire
                     metadataNew = metadataMove
                 }
                 NCManageDatabase.sharedInstance.moveMedia(ocId: metadata.ocId, serverUrlTo: serverUrlTo)
-                
-                NCManageDatabase.sharedInstance.clearDateRead(serverUrl: metadata.serverUrl, account: account)
-                NCManageDatabase.sharedInstance.clearDateRead(serverUrl: serverUrlTo, account: account)
-                
+                                
                 NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_reloadDataSource), object: nil, userInfo: ["serverUrl":metadata.serverUrl])
                 NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_reloadDataSource), object: nil, userInfo: ["serverUrl":serverUrlTo])
             }

+ 1 - 4
iOSClient/Settings/CCAdvanced.m

@@ -185,10 +185,7 @@
     
     if ([rowDescriptor.tag isEqualToString:@"showHiddenFiles"]) {
         
-        [CCUtility setShowHiddenFiles:[[rowDescriptor.value valueData] boolValue]];
-        
-        // force reload
-        [[NCManageDatabase sharedInstance] setClearAllDateReadDirectory];
+        [CCUtility setShowHiddenFiles:[[rowDescriptor.value valueData] boolValue]];        
     }
     
     if ([rowDescriptor.tag isEqualToString:@"formatCompatibility"]) {

+ 0 - 6
iOSClient/Settings/CCManageAutoUpload.m

@@ -491,15 +491,9 @@
             return;
         }
         
-        // Clear data (old) Auto Upload
-        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:[[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:appDelegate.activeUrl] account:appDelegate.activeAccount];
-        
         // Settings new folder Automatatic upload
         [[NCManageDatabase sharedInstance] setAccountAutoUploadFileName:[CCUtility getLastPathFromServerUrl:serverUrl activeUrl:appDelegate.activeUrl]];
         [[NCManageDatabase sharedInstance] setAccountAutoUploadDirectory:[CCUtility deletingLastPathComponentFromServerUrl:serverUrl] activeUrl:appDelegate.activeUrl];
-        
-        // Clear data new Auto Upload
-        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:serverUrl account:appDelegate.activeAccount];
     }
 }
 

+ 3 - 2
iOSClient/Settings/CCSettings.m

@@ -441,8 +441,9 @@
 
             NSArray *directories = [[NCManageDatabase sharedInstance] getTablesDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND (serverUrl == %@ OR serverUrl BEGINSWITH %@)", appDelegate.activeAccount, serverUrl, serverUrlBeginWith] sorted:@"serverUrl" ascending:true];
             
-            for (tableDirectory *directory in directories)
-                [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:directory.serverUrl account:appDelegate.activeAccount];
+            for (tableDirectory *directory in directories) {
+                [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:k_notificationCenter_reloadDataSource object:nil userInfo:@{@"serverUrl": directory.serverUrl}];
+            }
         } 
     }
     

+ 0 - 11
iOSClient/Synchronize/CCSynchronize.m

@@ -278,18 +278,7 @@
 // MULTI THREAD
 - (void)SynchronizeMetadatas:(NSArray *)metadatas withDownload:(BOOL)withDownload
 {
-    NSString *oldServerUrl;
-    NSMutableArray *serverUrlToReload = [NSMutableArray new];
-
     for (tableMetadata *metadata in metadatas) {
-        
-        // Clear date for dorce refresh view
-        if (![oldServerUrl isEqualToString:metadata.serverUrl]) {
-            oldServerUrl = metadata.serverUrl;
-            [serverUrlToReload addObject:metadata.serverUrl];
-            [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:metadata.serverUrl account:metadata.account];
-        }
-
         [[NCOperationQueue shared] downloadWithMetadata:metadata selector:selectorDownloadSynchronize setFavorite:false];
     }
 }