Marino Faggiana 6 years ago
parent
commit
a2dd57f0bd

+ 1 - 1
PickerFileProvider/FileProviderEnumerator.swift

@@ -300,7 +300,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
             for metadata in metadatas {
                 
                 // E2EE Remove
-                if metadata.e2eEncrypted || metadata.status == Double(k_metadataStatusHide) || (metadata.session != "" && metadata.session != k_download_session_extension && metadata.session != k_upload_session_extension) {
+                if metadata.e2eEncrypted || metadata.status == Int(k_metadataStatusHide) || (metadata.session != "" && metadata.session != k_download_session_extension && metadata.session != k_upload_session_extension) {
                     continue
                 }
                 

+ 2 - 2
PickerFileProvider/FileProviderExtension+Actions.swift

@@ -440,7 +440,7 @@ extension FileProviderExtension {
                 metadata.fileNameView = fileName
                 metadata.path = fileNamePathDirectory
                 metadata.size = size
-                metadata.status = Double(k_metadataStatusHide)
+                metadata.status = Int(k_metadataStatusHide)
                
                 CCUtility.insertTypeFileIconName(fileName, metadata: metadata)
 
@@ -449,7 +449,7 @@ extension FileProviderExtension {
                     metadata.session = k_upload_session_extension
                     metadata.sessionSelector = selectorUploadFile
                     metadata.sessionSelectorPost = self.providerData.selectorPostImportDocument
-                    metadata.status = Double(k_metadataStatusWaitUpload)
+                    metadata.status = Int(k_metadataStatusWaitUpload)
                 }
                 
                 guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {

+ 2 - 2
PickerFileProvider/FileProviderExtension+Network.swift

@@ -187,7 +187,7 @@ extension FileProviderExtension {
             return
         }
         
-        metadataDownload.status = Double(k_metadataStatusUploading)
+        metadataDownload.status = Int(k_metadataStatusUploading)
         guard let metadata = NCManageDatabase.sharedInstance.addMetadata(metadataDownload) else {
             return
         }
@@ -341,7 +341,7 @@ extension FileProviderExtension {
         metadata.session = k_upload_session_extension
         metadata.sessionSelector = selectorUploadFile
         metadata.sessionSelectorPost = providerData.selectorPostItemChanged
-        metadata.status = Double(k_metadataStatusWaitUpload)
+        metadata.status = Int(k_metadataStatusWaitUpload)
 
         guard let metadataForUpload = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
             return

+ 3 - 3
iOSClient/AppDelegate.m

@@ -1330,7 +1330,7 @@
     
     if ([[_listChangeTask objectForKey:fileID] isEqualToString:@"stopUpload"]) {
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierStop predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierStop status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
     }
     else if ([[_listChangeTask objectForKey:fileID] isEqualToString:@"reloadUpload"]) {
@@ -1343,7 +1343,7 @@
     }
     else if ([[_listChangeTask objectForKey:fileID] isEqualToString:@"reloadDownload"]) {
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         
 //        [[CCNetworking sharedNetworking] downloadFile:metadata.fileName fileID:fileID serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost session:k_download_session taskStatus:k_taskStatusResume delegate:self.activeMain];
     }
@@ -1358,7 +1358,7 @@
     }
     else if ([[_listChangeTask objectForKey:fileID] isEqualToString:@"cancelDownload"]) {
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
     }
     
     // remove ChangeTask (fileID) from the list

+ 1 - 0
iOSClient/CCGlobal.h

@@ -239,6 +239,7 @@ extern NSString *const flowEndpoint;
 #define k_metadataStatusWaitDownload                    5
 #define k_metadataStatusInDownload                      6
 #define k_metadataStatusDownloading                     7
+#define k_metadataStatusNULL                            99999
 
 // TabBar button
 #define k_tabBarApplicationIndexFile                    0

+ 1 - 1
iOSClient/Create/CCCreateCloud.swift

@@ -646,7 +646,7 @@ class CreateFormUploadFile: XLFormViewController, CCMoveDelegate {
                 metadataForUpload.path = self.appDelegate.directoryUser!
                 metadataForUpload.session = k_upload_session
                 metadataForUpload.sessionSelector = selectorUploadFile
-                metadataForUpload.status = Double(k_metadataStatusWaitUpload)
+                metadataForUpload.status = Int(k_metadataStatusWaitUpload)
                 
                 _ = NCManageDatabase.sharedInstance.addMetadata(metadataForUpload)
                 self.appDelegate.perform(#selector(self.appDelegate.loadAutoDownloadUpload), on: Thread.main, with: nil, waitUntilDone: true)

+ 1 - 1
iOSClient/Database/NCDatabase.swift

@@ -215,7 +215,7 @@ class tableMetadata: Object {
     @objc dynamic var sessionSelectorPost = ""
     @objc dynamic var sessionTaskIdentifier: Int = -1
     @objc dynamic var size: Double = 0
-    @objc dynamic var status: Double = 0
+    @objc dynamic var status: Int = 0
     @objc dynamic var thumbnailExists: Bool = false
     @objc dynamic var typeFile = ""
     

+ 4 - 33
iOSClient/Database/NCManageDatabase.swift

@@ -1686,7 +1686,7 @@ class NCManageDatabase: NSObject {
         return tableMetadata.init(value: metadata)
     }
     
-    @objc func setMetadataSession(_ session: String?, sessionError: String?, sessionSelector: String?, sessionSelectorPost: String?, sessionTaskIdentifier: Int, predicate: NSPredicate) {
+    @objc func setMetadataSession(_ session: String?, sessionError: String?, sessionSelector: String?, sessionSelectorPost: String?, sessionTaskIdentifier: Int, status: Int, predicate: NSPredicate) {
         
         guard self.getAccountActive() != nil else {
             return
@@ -1716,6 +1716,9 @@ class NCManageDatabase: NSObject {
         if sessionTaskIdentifier != Int(k_taskIdentifierNULL) {
             result.sessionTaskIdentifier = sessionTaskIdentifier
         }
+        if status != Int(k_metadataStatusNULL) {
+            result.status = status
+        }
         
         let directoryID : String? = result.directoryID
         
@@ -1796,38 +1799,6 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func setMetadataStatus(fileID: String, status: Double) {
-        
-        guard let tableAccount = self.getAccountActive() else {
-            return
-        }
-                
-        let realm = try! Realm()
-
-        realm.beginWrite()
-        
-        guard let result = realm.objects(tableMetadata.self).filter("account = %@ AND fileID = %@", tableAccount.account, fileID).first else {
-            realm.cancelWrite()
-            return
-        }
-        
-        result.status = status
-        
-        let directoryID : String? = result.directoryID
-        
-        do {
-            try realm.commitWrite()
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
-            return
-        }
-        
-        if let directoryID = directoryID {
-            // Update Date Read Directory
-            self.setDateReadDirectory(directoryID: directoryID)
-        }
-    }
-
     @objc func getMetadata(predicate: NSPredicate) -> tableMetadata? {
         
         guard self.getAccountActive() != nil else {

+ 11 - 11
iOSClient/Networking/CCNetworking.m

@@ -365,7 +365,7 @@
         
         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]];
+                [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone  status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"account = %@ AND session CONTAINS 'download'", _activeAccount]];
             });
         }
     }
@@ -590,13 +590,13 @@
         
     if (localfile != nil && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.fileID]]) {
             
-        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
             
         [delegate downloadFileSuccessFailure:metadata.fileName fileID:metadata.fileID serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorMessage:@"" errorCode:0];
         return;
     }
     
-    [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:metadata.sessionSelector sessionSelectorPost:metadata.sessionSelectorPost sessionTaskIdentifier:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+    [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:metadata.sessionSelector sessionSelectorPost:metadata.sessionSelectorPost sessionTaskIdentifier:k_taskIdentifierNULL status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
             
     [self downloaURLSession:metadata serverUrl:serverUrl taskStatus:taskStatus];
 }
@@ -626,12 +626,12 @@
     if (downloadTask == nil) {
         
         [[NCManageDatabase sharedInstance] addActivityClient:metadata.fileName fileID:metadata.fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:@"Serious internal error downloadTask not available" type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
-        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"Serious internal error downloadTask not available" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"Serious internal error downloadTask not available" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
         [self.delegate downloadFileSuccessFailure:metadata.fileName fileID:metadata.fileID serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:@"" errorMessage:@"Serious internal error downloadTask not available" errorCode:k_CCErrorInternalError];
 
     } else {
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:nil sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:downloadTask.taskIdentifier predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:nil sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:downloadTask.taskIdentifier status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
         
         // Manage uploadTask cancel,suspend,resume
         if (taskStatus == k_taskStatusCancel) [downloadTask cancel];
@@ -724,7 +724,7 @@
         
         if (errorCode != kCFURLErrorCancelled) {
             
-            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[CCError manageErrorKCF:errorCode withNumberError:NO] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[CCError manageErrorKCF:errorCode withNumberError:NO] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
         }
         
         [[self getDelegate:fileID] downloadFileSuccessFailure:fileName fileID:fileID serverUrl:serverUrl selector:selector selectorPost:selectorPost errorMessage:[CCError manageErrorKCF:errorCode withNumberError:YES] errorCode:errorCode];
@@ -984,7 +984,7 @@
     if (uploadTask == nil) {
         
         NSString *messageError = @"Serious internal error uploadTask not available";
-        [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:messageError sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:messageError sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
         [[self getDelegate:metadata.fileID] uploadFileSuccessFailure:metadata.fileNameView fileID:metadata.fileID assetLocalIdentifier:metadata.assetLocalIdentifier serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorMessage:messageError errorCode:k_CCErrorInternalError];
         
     } else {
@@ -1004,13 +1004,13 @@
                         [uploadTask cancel];
 
                         NSString *messageError = [NSString stringWithFormat:@"%@ (%d)", error.localizedDescription, (int)error.code];
-                        [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:messageError sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
+                        [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:messageError sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
                         [[self getDelegate:metadata.fileID] uploadFileSuccessFailure:metadata.fileNameView fileID:metadata.fileID assetLocalIdentifier:metadata.assetLocalIdentifier serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorMessage:messageError errorCode:k_CCErrorInternalError];
                         
                     } else {
                     
                         // *** E2EE ***
-                        [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:uploadTask.taskIdentifier predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
+                        [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:uploadTask.taskIdentifier status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
                         
                         // Manage uploadTask cancel,suspend,resume
                         if (taskStatus == k_taskStatusCancel) [uploadTask cancel];
@@ -1031,7 +1031,7 @@
          } else {
     
              // *** PLAIN ***
-             [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:uploadTask.taskIdentifier predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
+             [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:uploadTask.taskIdentifier status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
                           
              // Manage uploadTask cancel,suspend,resume
              if (taskStatus == k_taskStatusCancel) [uploadTask cancel];
@@ -1103,7 +1103,7 @@
         // Mark error only if not Cancelled Task
         if (errorCode != kCFURLErrorCancelled)  {
 
-            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[CCError manageErrorKCF:errorCode withNumberError:NO] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", tempFileID, _activeAccount]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[CCError manageErrorKCF:errorCode withNumberError:NO] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError status:k_metadataStatusNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", tempFileID, _activeAccount]];
         }
         
         errorMessage = [CCError manageErrorKCF:errorCode withNumberError:YES];

+ 1 - 1
iOSClient/Text/NCText.swift

@@ -162,7 +162,7 @@ class NCText: UIViewController, UITextViewDelegate {
                         metadata.path = self.appDelegate.directoryUser!
                         metadata.session = k_upload_session
                         metadata.sessionSelector = selectorUploadFile
-                        metadata.status = Double(k_metadataStatusWaitUpload)
+                        metadata.status = Int(k_metadataStatusWaitUpload)
 
                         _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
                         self.appDelegate.perform(#selector(self.appDelegate.loadAutoDownloadUpload), on: Thread.main, with: nil, waitUntilDone: true)