Marino Faggiana 6 年之前
父节点
当前提交
cfef0fcad8

+ 8 - 4
PickerFileProvider/FileProviderExtension+Network.swift

@@ -178,13 +178,17 @@ extension FileProviderExtension {
     //  MARK: - Upload
     // --------------------------------------------------------------------------------------------
     
-    func uploadStart(_ metadata: tableMetadata!, task: URLSessionUploadTask!, serverUrl: String!) {
-     
+    func uploadStart(_ fileID: String!, account: String!, task: URLSessionUploadTask!, serverUrl: String!) {
+        
         /* ONLY iOS 11*/
         guard #available(iOS 11, *) else { return }
 
-        metadata.status = Double(k_metadataStatusUploading)
-        guard let metadata = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
+        guard let metadataDownload = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %d", account, fileID)) else {
+            return
+        }
+        
+        metadataDownload.status = Double(k_metadataStatusUploading)
+        guard let metadata = NCManageDatabase.sharedInstance.addMetadata(metadataDownload) else {
             return
         }
         

+ 18 - 10
iOSClient/Main/CCMain.m

@@ -1069,14 +1069,18 @@
 #pragma mark ==== Download ====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)downloadStart:(tableMetadata *)metadata task:(NSURLSessionDownloadTask *)task serverUrl:(NSString *)serverUrl
+- (void)downloadStart:(NSString *)fileID account:(NSString *)account task:(NSURLSessionDownloadTask *)task serverUrl:(NSString *)serverUrl
 {
-    metadata.status = k_metadataStatusDownloading;
-    (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND fileID = %@", account, fileID]];
+    if (metadata) {
     
-    [self reloadDatasource: serverUrl];
+        metadata.status = k_metadataStatusDownloading;
+        (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
     
-    [appDelegate updateApplicationIconBadgeNumber];
+        [self reloadDatasource: serverUrl];
+    
+        [appDelegate updateApplicationIconBadgeNumber];
+    }
 }
 
 - (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode
@@ -1287,14 +1291,18 @@
 #pragma mark ===== Upload new Photos/Videos =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)uploadStart:(tableMetadata *)metadata task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl
+- (void)uploadStart:(NSString *)fileID account:(NSString *)account task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl
 {
-    metadata.status = k_metadataStatusUploading;
-    (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND fileID = %@", account, fileID]];
+    if (metadata) {
+        
+        metadata.status = k_metadataStatusUploading;
+        (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
     
-    [self reloadDatasource: serverUrl];
+        [self reloadDatasource: serverUrl];
     
-    [appDelegate updateApplicationIconBadgeNumber];
+        [appDelegate updateApplicationIconBadgeNumber];
+    }
 }
 
 - (void)uploadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID assetLocalIdentifier:(NSString *)assetLocalIdentifier serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode

+ 2 - 2
iOSClient/Networking/CCNetworking.h

@@ -73,10 +73,10 @@
 
 @optional - (void)reloadDatasource:(NSString *)serverUrl;
 
-@optional - (void)downloadStart:(tableMetadata *)metadata task:(NSURLSessionDownloadTask *)task serverUrl:(NSString *)serverUrl;
+@optional - (void)downloadStart:(NSString *)fileID account:(NSString *)account task:(NSURLSessionDownloadTask *)task serverUrl:(NSString *)serverUrl;
 @optional  - (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode;
 
-@optional - (void)uploadStart:(tableMetadata *)metadata task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl;
+@optional - (void)uploadStart:(NSString *)fileID account:(NSString *)account task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl;
 @optional - (void)uploadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID assetLocalIdentifier:(NSString *)assetLocalIdentifier serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode;
 
 @end

+ 6 - 6
iOSClient/Networking/CCNetworking.m

@@ -646,8 +646,8 @@
     }
     
     dispatch_async(dispatch_get_main_queue(), ^{
-        if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(downloadStart:task:serverUrl:)]) {
-            [[self getDelegate:metadata.fileID] downloadStart:metadata task:downloadTask serverUrl:serverUrl];
+        if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(downloadStart:account:task:serverUrl:)]) {
+            [[self getDelegate:metadata.fileID] downloadStart:metadata.fileID account:metadata.account task:downloadTask serverUrl:serverUrl];
         }
     });
 }
@@ -1021,8 +1021,8 @@
                         NSLog(@"[LOG] Upload file %@ TaskIdentifier %lu", metadata.fileName, (unsigned long)uploadTask.taskIdentifier);
                         
                         dispatch_async(dispatch_get_main_queue(), ^{
-                            if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(uploadStart:task:serverUrl:)]) {
-                                [[self getDelegate:metadata.fileID] uploadStart:metadata task:uploadTask serverUrl:serverUrl];
+                            if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(uploadStart:account:task:serverUrl:)]) {
+                                [[self getDelegate:metadata.fileID] uploadStart:metadata.fileID account:metadata.account task:uploadTask serverUrl:serverUrl];
                             }
                         });
                     }
@@ -1042,8 +1042,8 @@
              NSLog(@"[LOG] Upload file %@ TaskIdentifier %lu", metadata.fileName, (unsigned long)uploadTask.taskIdentifier);
              
              dispatch_async(dispatch_get_main_queue(), ^{
-                 if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(uploadStart:task:serverUrl:)]) {
-                     [[self getDelegate:metadata.fileID] uploadStart:metadata task:uploadTask serverUrl:serverUrl];
+                 if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(uploadStart:account:task:serverUrl:)]) {
+                     [[self getDelegate:metadata.fileID] uploadStart:metadata.fileID account:metadata.account task:uploadTask serverUrl:serverUrl];
                  }
              });
          }