فهرست منبع

change fileID to etag

Marino Faggiana 7 سال پیش
والد
کامیت
6f98e3e94a
54فایلهای تغییر یافته به همراه703 افزوده شده و 703 حذف شده
  1. 22 22
      Picker/DocumentPickerViewController.swift
  2. 8 8
      Share Ext/ShareViewController.m
  3. 19 19
      iOSClient/Actions/CCActions.swift
  4. 3 3
      iOSClient/Activity/CCActivity.m
  5. 20 20
      iOSClient/AppDelegate.m
  6. 30 30
      iOSClient/Favorites/CCFavorites.m
  7. 24 24
      iOSClient/Favorites/CCSynchronize.m
  8. 7 7
      iOSClient/FileSystem/CCCoreData.h
  9. 36 36
      iOSClient/FileSystem/CCCoreData.m
  10. 3 3
      iOSClient/FileSystem/NCDatabase.swift
  11. 3 3
      iOSClient/FileSystem/NCManageDatabase.swift
  12. 1 1
      iOSClient/FileSystem/TableDirectory+CoreDataProperties.h
  13. 1 1
      iOSClient/FileSystem/TableDirectory+CoreDataProperties.m
  14. 1 1
      iOSClient/FileSystem/TableLocalFile+CoreDataProperties.h
  15. 1 1
      iOSClient/FileSystem/TableLocalFile+CoreDataProperties.m
  16. 13 13
      iOSClient/Local storage/CCLocalStorage.m
  17. 1 1
      iOSClient/Main/CCDetail.h
  18. 35 35
      iOSClient/Main/CCDetail.m
  19. 1 1
      iOSClient/Main/CCMain.h
  20. 146 146
      iOSClient/Main/CCMain.m
  21. 2 2
      iOSClient/Main/CCSection.h
  22. 18 18
      iOSClient/Main/CCSection.m
  23. 5 5
      iOSClient/Move/CCMove.m
  24. 7 7
      iOSClient/Networking/CCNetworking.h
  25. 120 120
      iOSClient/Networking/CCNetworking.m
  26. 4 4
      iOSClient/Networking/OCNetworking.h
  27. 18 18
      iOSClient/Networking/OCNetworking.m
  28. 4 4
      iOSClient/PeekPop/CCPeekPop.m
  29. 28 28
      iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m
  30. 1 1
      iOSClient/Share/CCShareOC.h
  31. 3 3
      iOSClient/Share/CCShareOC.m
  32. 2 2
      iOSClient/Templates/CCAccountWeb.h
  33. 8 8
      iOSClient/Templates/CCAccountWeb.m
  34. 2 2
      iOSClient/Templates/CCBancomat.h
  35. 8 8
      iOSClient/Templates/CCBancomat.m
  36. 2 2
      iOSClient/Templates/CCCartaDiCredito.h
  37. 8 8
      iOSClient/Templates/CCCartaDiCredito.m
  38. 2 2
      iOSClient/Templates/CCCartaIdentita.h
  39. 8 8
      iOSClient/Templates/CCCartaIdentita.m
  40. 2 2
      iOSClient/Templates/CCContoCorrente.h
  41. 8 8
      iOSClient/Templates/CCContoCorrente.m
  42. 2 2
      iOSClient/Templates/CCNote.h
  43. 8 8
      iOSClient/Templates/CCNote.m
  44. 2 2
      iOSClient/Templates/CCPassaporto.h
  45. 8 8
      iOSClient/Templates/CCPassaporto.m
  46. 2 2
      iOSClient/Templates/CCPatenteGuida.h
  47. 8 8
      iOSClient/Templates/CCPatenteGuida.m
  48. 17 17
      iOSClient/Transfers/CCTransfers.m
  49. 2 2
      iOSClient/Utility/CCExifGeo.h
  50. 5 5
      iOSClient/Utility/CCExifGeo.m
  51. 1 1
      iOSClient/Utility/CCGraphics.h
  52. 6 6
      iOSClient/Utility/CCGraphics.m
  53. 5 5
      iOSClient/Utility/CCUtility.m
  54. 2 2
      iOSClient/cryptocloud.xcdatamodeld/cryptocloud 10.xcdatamodel/contents

+ 22 - 22
Picker/DocumentPickerViewController.swift

@@ -334,7 +334,7 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
                 metadataNet.action = actionDownloadFile
                 metadataNet.downloadData = false
                 metadataNet.downloadPlist = true
-                metadataNet.fileID = metadata.fileID
+                metadataNet.etag = metadata.etag
                 metadataNet.selector = selectorLoadPlist
                 metadataNet.serverUrl = self.serverUrl
                 metadataNet.session = k_download_session_foreground
@@ -365,9 +365,9 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
     
     func downloadThumbnailSuccess(_ metadataNet: CCMetadataNet!) {
         
-        if let indexPath = thumbnailInLoading[metadataNet.fileID] {
+        if let indexPath = thumbnailInLoading[metadataNet.etag] {
             
-            let path = "\(directoryUser!)/\(metadataNet.fileID!).ico"
+            let path = "\(directoryUser!)/\(metadataNet.etag!).ico"
             
             if FileManager.default.fileExists(atPath: path) {
                 
@@ -384,9 +384,9 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
         let metadataNet = CCMetadataNet.init(account: activeAccount)!
         
         metadataNet.action = actionDownloadThumbnail
-        metadataNet.fileID = metadata.fileID
+        metadataNet.etag = metadata.etag
         metadataNet.fileName = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: self.serverUrl, activeUrl: activeUrl)
-        metadataNet.fileNameLocal = metadata.fileID;
+        metadataNet.fileNameLocal = metadata.etag;
         metadataNet.fileNamePrint = metadata.fileNamePrint;
         metadataNet.options = "m";
         metadataNet.selector = selectorDownloadThumbnail;
@@ -398,7 +398,7 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
 
     //  MARK: - Download / Upload
     
-    func progressTask(_ fileID: String!, serverUrl: String!, cryptated: Bool, progress: Float) {
+    func progressTask(_ etag: String!, serverUrl: String!, cryptated: Bool, progress: Float) {
         
         hud.progress(progress)
     }
@@ -410,7 +410,7 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
 
     //  MARK: - Download
 
-    func downloadFileFailure(_ fileID: String!, serverUrl: String!, selector: String!, message: String!, errorCode: Int) {
+    func downloadFileFailure(_ etag: String!, serverUrl: String!, selector: String!, message: String!, errorCode: Int) {
         
         hud.hideHud()
         
@@ -418,27 +418,27 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
             
             let alert = UIAlertController(title: NSLocalizedString("_error_", comment: ""), message: message, preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default) { action in
-                NSLog("[LOG] Download Error \(fileID) \(message) (error \(errorCode))");
+                NSLog("[LOG] Download Error \(etag) \(message) (error \(errorCode))");
             })
             
             self.present(alert, animated: true, completion: nil)
         }
     }
 
-    func downloadFileSuccess(_ fileID: String!, serverUrl: String!, selector: String!, selectorPost: String!) {
+    func downloadFileSuccess(_ etag: String!, serverUrl: String!, selector: String!, selectorPost: String!) {
         
         hud.hideHud()
         
-        let predicate = NSPredicate(format: "account = %@ AND fileID == %@", activeAccount!, fileID!)
+        let predicate = NSPredicate(format: "account = %@ AND etag == %@", activeAccount!, etag!)
         metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(predicate)
         
-        //let metadata = CCCoreData.getMetadataWithPreficate(NSPredicate(format: "(account == '\(activeAccount!)') AND (fileID == '\(fileID!)')"), context: nil)
+        //let metadata = CCCoreData.getMetadataWithPreficate(NSPredicate(format: "(account == '\(activeAccount!)') AND (etag == '\(etag!)')"), context: nil)
         
         switch selector {
             
         case selectorLoadFileView :
             
-            let sourceUrl = URL(string: "file://\(directoryUser!)/\(fileID!)".addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!)!
+            let sourceUrl = URL(string: "file://\(directoryUser!)/\(etag!)".addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!)!
             let destinationUrl : URL! = appGroupContainerURL()?.appendingPathComponent(metadata!.fileNamePrint)
             
             // Destination Provider
@@ -473,13 +473,13 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
  
     //  MARK: - Upload
     
-    func uploadFileFailure(_ metadataNet: CCMetadataNet, fileID: String, serverUrl: String, selector: String, message: String, errorCode: NSInteger){
+    func uploadFileFailure(_ metadataNet: CCMetadataNet, etag: String, serverUrl: String, selector: String, message: String, errorCode: NSInteger){
         
         hud.hideHud()
         
         // remove file
-        //CCCoreData.deleteMetadata(with: NSPredicate(format: "(account == '\(activeAccount!)') AND (fileID == '\(fileID)')"))
-        let predicate = NSPredicate(format: "account = %@ AND fileID == %@", activeAccount!, fileID)
+        //CCCoreData.deleteMetadata(with: NSPredicate(format: "(account == '\(activeAccount!)') AND (etag == '\(etag)')"))
+        let predicate = NSPredicate(format: "account = %@ AND etag == %@", activeAccount!, etag)
         NCManageDatabase.sharedInstance.deleteMetadata(predicate)
         
         if errorCode != -999 {
@@ -487,14 +487,14 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
             let alert = UIAlertController(title: NSLocalizedString("_error_", comment: ""), message: message, preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default) { action in
                 //self.dismissGrantingAccess(to: nil)
-                NSLog("[LOG] Download Error \(fileID) \(message) (error \(errorCode))");
+                NSLog("[LOG] Download Error \(etag) \(message) (error \(errorCode))");
             })
             
             self.present(alert, animated: true, completion: nil)
         }
     }
     
-    func uploadFileSuccess(_ metadataNet: CCMetadataNet, fileID: String, serverUrl: String, selector: String, selectorPost: String) {
+    func uploadFileSuccess(_ metadataNet: CCMetadataNet, etag: String, serverUrl: String, selector: String, selectorPost: String) {
         
         hud.hideHud()
                 
@@ -737,7 +737,7 @@ extension DocumentPickerViewController: UITableViewDataSource {
         //let metadata = CCCoreData.insertEntity(in: recordTableMetadata)!
         
         // File Image View
-        let filePath = "\(directoryUser!)/\(metadata!.fileID)).ico"
+        let filePath = "\(directoryUser!)/\(metadata!.etag)).ico"
         
         if FileManager.default.fileExists(atPath: filePath) {
             
@@ -755,7 +755,7 @@ extension DocumentPickerViewController: UITableViewDataSource {
                 if (metadata?.thumbnailExists)! {
                     
                     downloadThumbnail(metadata!)
-                    thumbnailInLoading[metadata!.fileID] = indexPath
+                    thumbnailInLoading[metadata!.etag] = indexPath
                 }
             }
         }
@@ -795,9 +795,9 @@ extension DocumentPickerViewController: UITableViewDataSource {
 
         if metadata!.directory == false {
             
-            if FileManager.default.fileExists(atPath: "\(directoryUser!)/\(String(describing: self.metadata?.fileID))") {
+            if FileManager.default.fileExists(atPath: "\(directoryUser!)/\(String(describing: self.metadata?.etag))") {
                 
-                downloadFileSuccess(self.metadata?.fileID, serverUrl: self.serverUrl!, selector: selectorLoadFileView, selectorPost: nil)
+                downloadFileSuccess(self.metadata?.etag, serverUrl: self.serverUrl!, selector: selectorLoadFileView, selectorPost: nil)
                 
             } else {
             
@@ -807,7 +807,7 @@ extension DocumentPickerViewController: UITableViewDataSource {
                 metadataNet.action = actionDownloadFile
                 metadataNet.downloadData = true
                 metadataNet.downloadPlist = false
-                metadataNet.fileID = metadata?.fileID
+                metadataNet.etag = metadata?.etag
                 metadataNet.selector = selectorLoadFileView
                 metadataNet.serverUrl = self.serverUrl
                 metadataNet.session = k_download_session_foreground

+ 8 - 8
Share Ext/ShareViewController.m

@@ -307,16 +307,16 @@
     [self.hud progress:progress];
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     [self.hud hideHud];
     
     // remove file 
-    //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount]];
-    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount]];
+    //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, _activeAccount]];
+    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, _activeAccount]];
     
-    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, fileID] error:nil];
-    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, fileID] error:nil];
+    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, etag] error:nil];
+    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, etag] error:nil];
 
     // message error
     if (errorCode != kCFURLErrorCancelled) {
@@ -334,13 +334,13 @@
         [self closeShareViewController];
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self.hud hideHud];
     
-    //tableMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount] context:nil];
+    //tableMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, _activeAccount] context:nil];
     
-    tableMetadata *metadata =  [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, _activeAccount]];
+    tableMetadata *metadata =  [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, _activeAccount]];
     
     
     [self.filesName removeObject:metadata.fileNamePrint];

+ 19 - 19
iOSClient/Actions/CCActions.swift

@@ -34,8 +34,8 @@ import Foundation
     func renameSuccess(_ metadataNet: CCMetadataNet)
     func renameMoveFileOrFolderFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger)
     
-    func uploadFileSuccess(_ metadataNet: CCMetadataNet, fileID: String, serverUrl: String, selector: String, selectorPost: String)
-    func uploadFileFailure(_ metadataNet: CCMetadataNet, fileID: String, serverUrl: String, selector: String, message: String, errorCode: NSInteger)
+    func uploadFileSuccess(_ metadataNet: CCMetadataNet, etag: String, serverUrl: String, selector: String, selectorPost: String)
+    func uploadFileFailure(_ metadataNet: CCMetadataNet, etag: String, serverUrl: String, selector: String, message: String, errorCode: NSInteger)
 }
 
 @objc protocol CCActionsSearchDelegate {
@@ -102,7 +102,7 @@ class CCActions: NSObject {
             
             metadataNet.action = actionDeleteFileDirectory
             metadataNet.delegate = delegate
-            metadataNet.fileID = metadata.fileID
+            metadataNet.etag = metadata.etag
             metadataNet.fileNamePrint = metadata.fileNamePrint
             metadataNet.serverUrl = serverUrl
             
@@ -122,7 +122,7 @@ class CCActions: NSObject {
             
             metadataNet.action = actionDeleteFileDirectory
             metadataNet.delegate = delegate
-            metadataNet.fileID = metadata.fileID
+            metadataNet.etag = metadata.etag
             metadataNet.fileName = metadata.fileName
             metadataNet.fileNamePrint = metadata.fileNamePrint
             metadataNet.selector = selectorDelete
@@ -134,7 +134,7 @@ class CCActions: NSObject {
     
     func deleteFileOrFolderSuccess(_ metadataNet: CCMetadataNet) {
         
-        let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "fileID == %@", metadataNet.fileID))
+        let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "etag == %@", metadataNet.etag))
         
         CCCoreData.deleteFile(metadata, serverUrl: metadataNet.serverUrl, directoryUser: appDelegate.directoryUser, activeAccount: appDelegate.activeAccount)
         
@@ -145,7 +145,7 @@ class CCActions: NSObject {
         
         if errorCode == 404 {
             
-            let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "fileID == %@", metadataNet.fileID))
+            let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "etag == %@", metadataNet.etag))
             
             CCCoreData.deleteFile(metadata, serverUrl: metadataNet.serverUrl, directoryUser: appDelegate.directoryUser, activeAccount: appDelegate.activeAccount)
         }
@@ -199,7 +199,7 @@ class CCActions: NSObject {
                 
                 do {
                     
-                    let file = "\(appDelegate.directoryUser!)/\(metadata.fileID)"
+                    let file = "\(appDelegate.directoryUser!)/\(metadata.etag)"
                     let dataFile = try NSData.init(contentsOfFile: file, options:[])
                     
                     do {
@@ -229,14 +229,14 @@ class CCActions: NSObject {
             
             metadataNet.action = actionUploadOnlyPlist
             metadataNet.delegate = delegate
-            metadataNet.fileID = metadata.fileID
+            metadataNet.etag = metadata.etag
             metadataNet.fileName = metadata.fileName
             metadataNet.selectorPost = selectorReadFolderForced
             metadataNet.serverUrl = serverUrl
             metadataNet.session = k_upload_session_foreground
             metadataNet.taskStatus = Int(k_taskStatusResume)
             
-            if CCCoreData.isOfflineLocalFileID(metadata.fileID, activeAccount: appDelegate.activeAccount) {
+            if CCCoreData.isOfflineLocalEtag(metadata.etag, activeAccount: appDelegate.activeAccount) {
                 metadataNet.selectorPost = selectorAddOffline
             }
             
@@ -270,7 +270,7 @@ class CCActions: NSObject {
             
             metadataNet.action = actionMoveFileOrFolder
             metadataNet.delegate = delegate
-            metadataNet.fileID = metadata.fileID
+            metadataNet.etag = metadata.etag
             metadataNet.fileName = metadata.fileName
             metadataNet.fileNamePrint = metadata.fileNamePrint
             metadataNet.fileNameTo = fileName
@@ -284,7 +284,7 @@ class CCActions: NSObject {
     
     func renameSuccess(_ metadataNet: CCMetadataNet) {
         
-        let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "fileID == %@", metadataNet.fileID))
+        let metadata = NCManageDatabase.sharedInstance.getMetadataWithPreficate(NSPredicate(format: "etag = %@", metadataNet.etag))
         
         if metadata?.directory == true {
             
@@ -295,7 +295,7 @@ class CCActions: NSObject {
             
         } else {
             
-            CCCoreData.renameLocalFile(withFileID: metadataNet.fileID, fileNameTo: metadataNet.fileNameTo, fileNamePrintTo: metadataNet.fileNameTo, activeAccount: appDelegate.activeAccount)
+            CCCoreData.renameLocalFile(withEtag: metadataNet.etag, fileNameTo: metadataNet.fileNameTo, fileNamePrintTo: metadataNet.fileNameTo, activeAccount: appDelegate.activeAccount)
         }
         
         metadataNet.delegate?.renameSuccess(metadataNet)
@@ -323,14 +323,14 @@ class CCActions: NSObject {
         metadataNet.delegate?.renameMoveFileOrFolderFailure(metadataNet, message: message as NSString, errorCode: errorCode)
     }
     
-    func uploadFileSuccess(_ metadataNet: CCMetadataNet, fileID: String, serverUrl: String, selector: String, selectorPost: String) {
+    func uploadFileSuccess(_ metadataNet: CCMetadataNet, etag: String, serverUrl: String, selector: String, selectorPost: String) {
         
-        metadataNet.delegate?.uploadFileSuccess(metadataNet, fileID:fileID, serverUrl: serverUrl, selector: selector, selectorPost: selectorPost)
+        metadataNet.delegate?.uploadFileSuccess(metadataNet, etag:etag, serverUrl: serverUrl, selector: selector, selectorPost: selectorPost)
     }
     
-    func uploadFileFailure(_ metadataNet: CCMetadataNet, fileID: String, serverUrl: String, selector: String, message: String, errorCode: NSInteger) {
+    func uploadFileFailure(_ metadataNet: CCMetadataNet, etag: String, serverUrl: String, selector: String, message: String, errorCode: NSInteger) {
         
-        metadataNet.delegate?.uploadFileFailure(metadataNet, fileID:fileID, serverUrl: serverUrl, selector: selector, message: message, errorCode: errorCode)
+        metadataNet.delegate?.uploadFileFailure(metadataNet, etag:etag, serverUrl: serverUrl, selector: selector, message: message, errorCode: errorCode)
     }
     
     // --------------------------------------------------------------------------------------------
@@ -374,9 +374,9 @@ class CCActions: NSObject {
         
         metadataNet.action = actionDownloadThumbnail
         metadataNet.delegate = delegate
-        metadataNet.fileID = metadata.fileID
+        metadataNet.etag = metadata.etag
         metadataNet.fileName = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
-        metadataNet.fileNameLocal = metadata.fileID
+        metadataNet.fileNameLocal = metadata.etag
         metadataNet.fileNamePrint = metadata.fileNamePrint
         metadataNet.options = "m"
         metadataNet.priority = Operation.QueuePriority.low.rawValue
@@ -407,7 +407,7 @@ class CCActions: NSObject {
         
         metadataNet.action = actionSettingFavorite
         metadataNet.delegate = delegate
-        metadataNet.fileID = metadata.fileID
+        metadataNet.etag = metadata.etag
         metadataNet.fileName = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
         metadataNet.options = "\(favorite)"
         metadataNet.priority = Operation.QueuePriority.normal.rawValue

+ 3 - 3
iOSClient/Activity/CCActivity.m

@@ -194,7 +194,7 @@
         
     if ([activity.action isEqual: k_activityDebugActionDownload] || [activity.action isEqual: k_activityDebugActionUpload]) {
         
-        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, activity.fileID]])
+        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, activity.etag]])
             return 1;
         else
             return 0;
@@ -314,7 +314,7 @@
 
     tableActivity *activity = [_sectionDataSource objectAtIndex:indexPath.section];
     
-    imageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, activity.fileID]];
+    imageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, activity.etag]];
     
     return cell;
 }
@@ -322,7 +322,7 @@
 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
 {
     tableActivity *activity = [_sectionDataSource objectAtIndex:indexPath.section];
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", activity.fileID]];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"etag = %@", activity.etag]];
     
     if (metadata) {
         

+ 20 - 20
iOSClient/AppDelegate.m

@@ -1374,7 +1374,7 @@
             
         } else {
             
-            [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:selectorUploadAutomatic note:@"Internal error image/video not found [0]" type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+            [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName etag:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:selectorUploadAutomatic note:@"Internal error image/video not found [0]" type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
             
             [[NCManageDatabase sharedInstance] deleteAutomaticUpload:metadataNet.assetLocalIdentifier];
         }
@@ -1441,7 +1441,7 @@
     if ([task isKindOfClass:[NSURLSessionUploadTask class]])
         app.sessionDateLastUploadTasks = [NSDate date];
     
-    if (metadata && [_listChangeTask objectForKey:metadata.fileID])
+    if (metadata && [_listChangeTask objectForKey:metadata.etag])
         dispatch_async(dispatch_get_main_queue(), ^{
             [self changeTask:metadata];
         });
@@ -1465,11 +1465,11 @@
 {
     NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account];
     
-    if ([[_listChangeTask objectForKey:metadata.fileID] isEqualToString:@"stopUpload"]) {
+    if ([[_listChangeTask objectForKey:metadata.etag] isEqualToString:@"stopUpload"]) {
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierStop sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierStop sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"etag = %@", metadata.etag]];
     }
-    else if ([[_listChangeTask objectForKey:metadata.fileID] isEqualToString:@"reloadUpload"]) {
+    else if ([[_listChangeTask objectForKey:metadata.etag] isEqualToString:@"reloadUpload"]) {
         
         // V 1.8 if upload_session_wwan change in upload_session
         if ([metadata.session isEqualToString:k_upload_session_wwan])
@@ -1477,7 +1477,7 @@
         
         [[CCNetworking sharedNetworking] uploadFileMetadata:metadata taskStatus:k_taskStatusResume];
     }
-    else if ([[_listChangeTask objectForKey:metadata.fileID] isEqualToString:@"reloadDownload"]) {
+    else if ([[_listChangeTask objectForKey:metadata.etag] isEqualToString:@"reloadDownload"]) {
         
         BOOL downloadData = NO, downloadPlist = NO;
             
@@ -1485,37 +1485,37 @@
         if (metadata.sessionTaskIdentifierPlist != k_taskIdentifierDone) downloadPlist = YES;
         
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
-            [[CCNetworking sharedNetworking] downloadFile:metadata.fileID serverUrl:serverUrl downloadData:downloadData downloadPlist:downloadPlist selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost session:k_download_session taskStatus:k_taskStatusResume delegate:nil];
+            [[CCNetworking sharedNetworking] downloadFile:metadata.etag serverUrl:serverUrl downloadData:downloadData downloadPlist:downloadPlist selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost session:k_download_session taskStatus:k_taskStatusResume delegate:nil];
         });
     }
-    else if ([[_listChangeTask objectForKey:metadata.fileID] isEqualToString:@"cancelUpload"]) {
+    else if ([[_listChangeTask objectForKey:metadata.etag] isEqualToString:@"cancelUpload"]) {
         
         // remove the file
         
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", metadata.etag]];
         
-        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID] error:nil];
-        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID] error:nil];
+        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag] error:nil];
+        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag] error:nil];
     }
-    else if ([[_listChangeTask objectForKey:metadata.fileID] isEqualToString:@"cancelDownload"]) {
+    else if ([[_listChangeTask objectForKey:metadata.etag] isEqualToString:@"cancelDownload"]) {
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"etag = %@", metadata.etag]];
     }
     
-    // remove ChangeTask (fileID) from the list
-    [_listChangeTask removeObjectForKey:metadata.fileID];
+    // remove ChangeTask (etag) from the list
+    [_listChangeTask removeObjectForKey:metadata.etag];
     
     // delete progress
-    [_listProgressMetadata removeObjectForKey:metadata.fileID];
+    [_listProgressMetadata removeObjectForKey:metadata.etag];
     
     // Progress Task
-    NSDictionary* userInfo = @{@"fileID": (metadata.fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
+    NSDictionary* userInfo = @{@"etag": (metadata.etag), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
     
     [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
 
     // Refresh
     if (_activeMain && [_listChangeTask count] == 0) {
-        [_activeMain reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account] fileID:nil selector:nil];
+        [_activeMain reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account] etag:nil selector:nil];
     }
 }
 
@@ -1526,7 +1526,7 @@
     if(![ocNetworking automaticCreateFolderSync:folderPhotos]) {
         
         // Activity
-        [[NCManageDatabase sharedInstance] addActivityClient:folderPhotos fileID:@"" action:k_activityDebugActionAutomaticUpload selector:selector note:NSLocalizedStringFromTable(@"_not_possible_create_folder_", @"Error", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:folderPhotos etag:@"" action:k_activityDebugActionAutomaticUpload selector:selector note:NSLocalizedStringFromTable(@"_not_possible_create_folder_", @"Error", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
         
         return false;
     }
@@ -1539,7 +1539,7 @@
             if(![ocNetworking automaticCreateFolderSync:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder]]) {
                 
                 // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder] fileID:@"" action:k_activityDebugActionAutomaticUpload selector:selector note:NSLocalizedString(@"_error_createsubfolders_upload_",nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                [[NCManageDatabase sharedInstance] addActivityClient:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder] etag:@"" action:k_activityDebugActionAutomaticUpload selector:selector note:NSLocalizedString(@"_error_createsubfolders_upload_",nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                 
                 return false;
             }

+ 30 - 30
iOSClient/Favorites/CCFavorites.m

@@ -192,9 +192,9 @@
 
 - (void)settingFavoriteSuccess:(CCMetadataNet *)metadataNet
 {
-    //[CCCoreData setMetadataFavoriteFileID:metadataNet.fileID favorite:[metadataNet.options boolValue] activeAccount:app.activeAccount context:nil];
+    //[CCCoreData setMetadataFavoriteFileID:metadataNet.etag favorite:[metadataNet.options boolValue] activeAccount:app.activeAccount context:nil];
     
-    [[NCManageDatabase sharedInstance] setMetadataFavorite:metadataNet.fileID favorite:[metadataNet.options boolValue]];
+    [[NCManageDatabase sharedInstance] setMetadataFavorite:metadataNet.etag favorite:[metadataNet.options boolValue]];
  
     [self reloadDatasource];
 }
@@ -212,20 +212,20 @@
 #pragma mark ==== Download <Delegate> ====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)downloadFileFailure:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)downloadFileFailure:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {    
     [app messageNotification:@"_download_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
 }
 
-- (void)downloadFileSuccess:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)downloadFileSuccess:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
-    //_metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, app.activeAccount] context:nil];
+    //_metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, app.activeAccount] context:nil];
     
-    _metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, app.activeAccount]];
+    _metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, app.activeAccount]];
     
     if ([_metadata.typeFile isEqualToString: k_metadataTypeFile_compress]) {
         
-        [self performSelector:@selector(unZipFile:) withObject:_metadata.fileID];
+        [self performSelector:@selector(unZipFile:) withObject:_metadata.etag];
         
     } else if ([_metadata.typeFile isEqualToString: k_metadataTypeFile_unknown]) {
         
@@ -248,29 +248,29 @@
     NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:_metadata.directoryID activeAccount:app.activeAccount];
     
     if ([metadata.model isEqualToString:@"cartadicredito"])
-        viewController = [[CCCartaDiCredito alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCCartaDiCredito alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"bancomat"])
-        viewController = [[CCBancomat alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCBancomat alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"contocorrente"])
-        viewController = [[CCContoCorrente alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCContoCorrente alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"accountweb"])
-        viewController = [[CCAccountWeb alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCAccountWeb alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"patenteguida"])
-        viewController = [[CCPatenteGuida alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCPatenteGuida alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"cartaidentita"])
-        viewController = [[CCCartaIdentita alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCCartaIdentita alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"passaporto"])
-        viewController = [[CCPassaporto alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCPassaporto alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"note"]) {
         
-        viewController = [[CCNote alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:NO serverUrl:serverUrl];
+        viewController = [[CCNote alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:NO serverUrl:serverUrl];
         
         UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
         
@@ -288,7 +288,7 @@
 
 - (void)openWith:(tableMetadata *)metadata
 {
-    NSString *fileNamePath = [NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID];
+    NSString *fileNamePath = [NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag];
     
     if ([[NSFileManager defaultManager] fileExistsAtPath:fileNamePath]) {
         
@@ -331,13 +331,13 @@
 #pragma mark ===== UnZipFile =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)unZipFile:(NSString *)fileID
+- (void)unZipFile:(NSString *)etag
 {
     [_hudDeterminate visibleHudTitle:NSLocalizedString(@"_unzip_in_progress_", nil) mode:MBProgressHUDModeDeterminate color:nil];
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
-        NSString *fileZip = [NSString stringWithFormat:@"%@/%@", app.directoryUser, fileID];
+        NSString *fileZip = [NSString stringWithFormat:@"%@/%@", app.directoryUser, etag];
         
         [SSZipArchive unzipFileAtPath:fileZip toDestination:[CCUtility getDirectoryLocal] overwrite:YES password:nil progressHandler:^(NSString *entry, unz_file_info zipInfo, long entryNumber, long total) {
             
@@ -388,9 +388,9 @@
     actionSheet.cancelButtonTitle = NSLocalizedString(@"_cancel_",nil);
     
     // assegnamo l'immagine anteprima se esiste, altrimenti metti quella standars
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]]) {
+    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]]) {
         
-        iconHeader = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
+        iconHeader = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
         
     } else {
         
@@ -477,8 +477,8 @@
     tableMetadata *metadata;
     
     NSManagedObject *record = [_dataSource objectAtIndex:indexPath.row];
-    //metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", [record valueForKey:@"fileID"], app.activeAccount] context:nil];
-    metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", [record valueForKey:@"fileID"], app.activeAccount]];
+    //metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", [record valueForKey:@"etag"], app.activeAccount] context:nil];
+    metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", [record valueForKey:@"etag"], app.activeAccount]];
 
     return metadata;
 }
@@ -509,9 +509,9 @@
         
     CCSectionDataSourceMetadata *sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:nil groupByField:nil replaceDateToExifDate:NO activeAccount:app.activeAccount];
         
-    NSArray *fileIDs = [sectionDataSource.sectionArrayRow objectForKey:@"_none_"];
-    for (NSString *fileID in fileIDs)
-        [metadatas addObject:[sectionDataSource.allRecordsDataSource objectForKey:fileID]];
+    NSArray *etags = [sectionDataSource.sectionArrayRow objectForKey:@"_none_"];
+    for (NSString *etag in etags)
+        [metadatas addObject:[sectionDataSource.allRecordsDataSource objectForKey:etag]];
         
     _dataSource = [NSArray arrayWithArray:metadatas];
     
@@ -552,7 +552,7 @@
     
     metadata = [_dataSource objectAtIndex:indexPath.row];
         
-    cell.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
+    cell.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
         
     if (_serverUrl == nil)
         cell.offlineImageView.image = [UIImage imageNamed:@"favorite"];
@@ -605,7 +605,7 @@
         
         if ([metadata.type isEqualToString: k_metadataType_file] || [metadata.type isEqualToString: k_metadataType_local]) {
             
-            BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID]];
+            BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag]];
             
             if (fileExists)
                 cell.labelInfoFile.text = [NSString stringWithFormat:@"%@ • %@", date, length];
@@ -637,13 +637,13 @@
         // File do not exists
         NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:_metadata.directoryID activeAccount:_metadata.account];
 
-        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, _metadata.fileID]]) {
+        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, _metadata.etag]]) {
             
-            [self downloadFileSuccess:_metadata.fileID serverUrl:serverUrl selector:selectorLoadFileView selectorPost:nil];
+            [self downloadFileSuccess:_metadata.etag serverUrl:serverUrl selector:selectorLoadFileView selectorPost:nil];
             
         } else {
             
-            [[CCNetworking sharedNetworking] downloadFile:_metadata.fileID serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorLoadFileView selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:self];
+            [[CCNetworking sharedNetworking] downloadFile:_metadata.etag serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorLoadFileView selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:self];
         }
     }
     

+ 24 - 24
iOSClient/Favorites/CCSynchronize.m

@@ -110,15 +110,15 @@
             continue;
 
         // Delete Record NOT in session
-        //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (directoryID == %@) AND (fileID = %@) AND ((session == NULL) OR (session == ''))", app.activeAccount, metadata.directoryID, metadata.fileID]];
+        //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (directoryID == %@) AND (etag = %@) AND ((session == NULL) OR (session == ''))", app.activeAccount, metadata.directoryID, metadata.etag]];
         
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(account = %@) AND (directoryID = %@) AND (fileID = %@) AND (session = '')", app.activeAccount, metadata.directoryID, metadata.fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(account = %@) AND (directoryID = %@) AND (etag = %@) AND (session = '')", app.activeAccount, metadata.directoryID, metadata.etag]];
         
         // end test, insert in CoreData
         [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:app.activeUrl];
         
         // insert for test NOT favorite
-        [filesID addObject:metadata.fileID];
+        [filesID addObject:metadata.etag];
         
         // ---- Synchronized ----
         
@@ -158,10 +158,10 @@
     NSArray *allRecordFavorite = [[NCManageDatabase sharedInstance] getMetadatasWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (favorite == 1)", app.activeAccount] sorted:nil ascending:NO];
     
     for (tableMetadata *metadata in allRecordFavorite)
-        if (![filesID containsObject:metadata.fileID])
-            [[NCManageDatabase sharedInstance] setMetadataFavorite:metadata.fileID favorite:NO];
+        if (![filesID containsObject:metadata.etag])
+            [[NCManageDatabase sharedInstance] setMetadataFavorite:metadata.etag favorite:NO];
     
-            //[CCCoreData setMetadataFavoriteFileID:tableMetadata.fileID favorite:NO activeAccount:app.activeAccount context:nil];
+            //[CCCoreData setMetadataFavoriteFileID:tableMetadata.etag favorite:NO activeAccount:app.activeAccount context:nil];
     
     [[NSNotificationCenter defaultCenter] postNotificationName:@"clearDateReadDataSource" object:nil];
 }
@@ -290,17 +290,17 @@
             if (record.cryptated)
                 continue;
             
-            BOOL fileIDFound = NO;
+            BOOL etagFound = NO;
             
             for (tableMetadata *metadata in metadatas) {
                 
-                if ([record.fileID isEqualToString:metadata.fileID]) {
-                    fileIDFound = YES;
+                if ([record.etag isEqualToString:metadata.etag]) {
+                    etagFound = YES;
                     break;
                 }
             }
             
-            if (!fileIDFound)
+            if (!etagFound)
                 [metadatasNotPresents addObject:record];
         }
         
@@ -313,7 +313,7 @@
             }
             
             if ([metadatasNotPresents count] > 0)
-                [app.activeMain reloadDatasource:metadataNet.serverUrl fileID:nil selector:nil];
+                [app.activeMain reloadDatasource:metadataNet.serverUrl etag:nil selector:nil];
         });
         
         // ----- Test : (MODIFY) -----
@@ -331,7 +331,7 @@
                 NSString *directoryID = [CCCoreData getDirectoryIDFromServerUrl:serverUrl activeAccount:app.activeAccount];
                     
                 // Verify if do not exists this Metadata
-                tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", metadataNet.account, metadata.fileID]];
+                tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", metadataNet.account, metadata.etag]];
 
                 if (!result)
                     [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:app.activeUrl];
@@ -353,7 +353,7 @@
                     // It's in session
                     BOOL recordInSession = NO;
                     for (tableMetadata *record in recordsInSessions) {
-                        if ([record.fileID isEqualToString:metadata.fileID]) {
+                        if ([record.etag isEqualToString:metadata.etag]) {
                             recordInSession = YES;
                             break;
                         }
@@ -369,7 +369,7 @@
                 if ([metadataNet.selector isEqualToString:selectorReadFolder]) {
                     
                     // Verify if do not exists this Metadata
-                    tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", metadataNet.account, metadata.fileID]];
+                    tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", metadataNet.account, metadata.etag]];
 
                     if (!result)
                         [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:metadataNet.serverUrl];
@@ -394,7 +394,7 @@
     CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
         
     metadataNet.action = actionReadFile;
-    metadataNet.fileID = metadata.fileID;
+    metadataNet.etag = metadata.etag;
     metadataNet.fileName = metadata.fileName;
     metadataNet.fileNamePrint = metadata.fileNamePrint;
     metadataNet.options = [NSNumber numberWithBool:withDownload] ;
@@ -412,10 +412,10 @@
     
     // File not present, remove it
     if (errorCode == 404 && [recordAccount.account isEqualToString:metadataNet.account]) {
-        [CCCoreData deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", metadataNet.account, metadataNet.fileID]];
-        //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", metadataNet.account, metadataNet.fileID]];
+        [CCCoreData deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", metadataNet.account, metadataNet.etag]];
+        //[CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", metadataNet.account, metadataNet.etag]];
         
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", metadataNet.account, metadataNet.fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", metadataNet.account, metadataNet.etag]];
     }
 }
 
@@ -450,7 +450,7 @@
         if (metadata.directory)
             continue;
         
-        TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", app.activeAccount, metadata.fileID]];
+        TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", app.activeAccount, metadata.etag]];
         
         if (withDownload) {
             
@@ -468,8 +468,8 @@
             if ([metadata.type isEqualToString: k_metadataType_file]) {
                 
                 // remove file and ico
-                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID] error:nil];
-                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID] error:nil];
+                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag] error:nil];
+                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag] error:nil];
             }
             
             if ([metadata.type isEqualToString: k_metadataType_template]) {
@@ -507,7 +507,7 @@
             BOOL downloadData = NO, downloadPlist = NO;
         
             // it's a offline ?
-            BOOL isOffline = [CCCoreData isOfflineLocalFileID:metadata.fileID activeAccount:app.activeAccount];
+            BOOL isOffline = [CCCoreData isOfflineLocalEtag:metadata.etag activeAccount:app.activeAccount];
         
             if (isOffline)
                 selectorPost = selectorAddOffline;
@@ -537,7 +537,7 @@
             metadataNet.action = actionDownloadFile;
             metadataNet.downloadData = downloadData;
             metadataNet.downloadPlist = downloadPlist;
-            metadataNet.fileID = metadata.fileID;
+            metadataNet.etag = metadata.etag;
             metadataNet.selector = selector;
             metadataNet.selectorPost = selectorPost;
             metadataNet.serverUrl = serverUrl;
@@ -547,7 +547,7 @@
             [app addNetworkingOperationQueue:app.netQueueDownload delegate:app.activeMain metadataNet:metadataNet];
         }
         
-        [app.activeMain reloadDatasource:serverUrl fileID:nil selector:nil];
+        [app.activeMain reloadDatasource:serverUrl etag:nil selector:nil];
         
         [_hud hideHud];
     });

+ 7 - 7
iOSClient/FileSystem/CCCoreData.h

@@ -55,7 +55,7 @@
 + (void)moveMetadata:(NSString *)fileName directoryID:(NSString *)directoryID directoryIDTo:(NSString *)directoryIDTo activeAccount:(NSString *)activeAccount;
 + (void)updateMetadata:(tableMetadata *)metadata predicate:(NSPredicate *)predicate activeAccount:(NSString *)activeAccount activeUrl:(NSString *)activeUrl context:(NSManagedObjectContext *)context;
 + (void)setMetadataSession:(NSString *)session sessionError:(NSString *)sessionError sessionSelector:(NSString *)sessionSelector sessionSelectorPost:(NSString *)sessionSelectorPost sessionTaskIdentifier:(NSInteger)sessionTaskIdentifier sessionTaskIdentifierPlist:(NSInteger)sessionTaskIdentifierPlist predicate:(NSPredicate *)predicate context:(NSManagedObjectContext *)context;
-+ (void)setMetadataFavoriteFileID:(NSString *)fileID favorite:(BOOL)favorite activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context;
++ (void)setMetadataFavoriteFileID:(NSString *)etag favorite:(BOOL)favorite activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context;
 
 + (TableMetadata *)getTableMetadataWithPreficate:(NSPredicate *)predicate;
 + (NSArray *)getTableMetadataWithPredicate:(NSPredicate *)predicate context:(NSManagedObjectContext *)context;
@@ -114,22 +114,22 @@
 + (void)addLocalFile:(tableMetadata *)metadata activeAccount:(NSString *)activeAccount;
 + (void)deleteLocalFileWithPredicate:(NSPredicate *)predicate;
 
-+ (void)renameLocalFileWithFileID:(NSString *)fileID fileNameTo:(NSString *)fileNameTo fileNamePrintTo:(NSString *)fileNamePrintTo activeAccount:(NSString *)activeAccount;
++ (void)renameLocalFileWithEtag:(NSString *)etag fileNameTo:(NSString *)fileNameTo fileNamePrintTo:(NSString *)fileNamePrintTo activeAccount:(NSString *)activeAccount;
 + (void)updateLocalFileModel:(tableMetadata *)metadata activeAccount:(NSString *)activeAccount;
 
-+ (TableLocalFile *)getLocalFileWithFileID:(NSString *)fileID activeAccount:(NSString *)activeAccount;
++ (TableLocalFile *)getLocalFileWithEtag:(NSString *)etag activeAccount:(NSString *)activeAccount;
 + (NSArray *)getTableLocalFileWithPredicate:(NSPredicate *)predicate;
 
 // ===== Offline LocalFile =====
 
-+ (void)setOfflineLocalFileID:(NSString *)fileID offline:(BOOL)offline activeAccount:(NSString *)activeAccount;
-+ (BOOL)isOfflineLocalFileID:(NSString *)fileID activeAccount:(NSString *)activeAccount;
++ (void)setOfflineLocalEtag:(NSString *)etag offline:(BOOL)offline activeAccount:(NSString *)activeAccount;
++ (BOOL)isOfflineLocalEtag:(NSString *)etag activeAccount:(NSString *)activeAccount;
 + (NSArray *)getOfflineLocalFileActiveAccount:(NSString *)activeAccount directoryUser:(NSString *)directoryUser;
 
 // ===== GeoInformation =====
 
-+ (NSArray *)getGeoInformationLocalFromFileID:(NSString *)fileID activeAccount:(NSString *)activeAccount;
-+ (void)setGeoInformationLocalFromFileID:(NSString *)fileID exifDate:(NSDate *)exifDate exifLatitude:(NSString *)exifLatitude exifLongitude:(NSString *)exifLongitude activeAccount:(NSString *)activeAccount;
++ (NSArray *)getGeoInformationLocalFromEtag:(NSString *)etag activeAccount:(NSString *)activeAccount;
++ (void)setGeoInformationLocalFromEtag:(NSString *)etag exifDate:(NSDate *)exifDate exifLatitude:(NSString *)exifLatitude exifLongitude:(NSString *)exifLongitude activeAccount:(NSString *)activeAccount;
 + (void)setGeoInformationLocalNull;
 
 // ===== Certificates =====

+ 36 - 36
iOSClient/FileSystem/CCCoreData.m

@@ -56,8 +56,8 @@
     if (context == nil)
         context = [NSManagedObjectContext MR_context];
 
-    // remove all fileID (BUG 2.10)
-    [TableMetadata MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, metadata.fileID] inContext:context];
+    // remove all etag (BUG 2.10)
+    [TableMetadata MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", activeAccount, metadata.etag] inContext:context];
     [context MR_saveToPersistentStoreAndWait];
     
     // remove record if exists
@@ -169,12 +169,12 @@
     [context MR_saveToPersistentStoreAndWait];
 }
 
-+ (void)setMetadataFavoriteFileID:(NSString *)fileID favorite:(BOOL)favorite activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context
++ (void)setMetadataFavoriteFileID:(NSString *)etag favorite:(BOOL)favorite activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context
 {
     if (context == nil)
         context = [NSManagedObjectContext MR_defaultContext];
     
-    TableMetadata *tableMetadata = [TableMetadata MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, fileID] inContext:context];
+    TableMetadata *tableMetadata = [TableMetadata MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", activeAccount, etag] inContext:context];
     
     if (tableMetadata) {
         
@@ -325,7 +325,7 @@
         NSArray *records = [TableMetadata MR_findAllWithPredicate:predicate];
         
         for (TableMetadata *record in records)
-            [self setOfflineLocalFileID:record.fileID offline:NO activeAccount:activeAccount];
+            [self setOfflineLocalFileID:record.etag offline:NO activeAccount:activeAccount];
     }];
 }
 */
@@ -422,8 +422,8 @@
                 }
                 
                 // remove file local
-                NSLog(@"[LOG] %@", recordMetadata.fileID);
-                [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, recordMetadata.fileID]];
+                NSLog(@"[LOG] %@", recordMetadata.etag);
+                [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", activeAccount, recordMetadata.etag]];
                 [recordMetadata MR_deleteEntityInContext:context];
             }
             
@@ -761,7 +761,7 @@
         
         BOOL offline = NO;
     
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, metadata.fileID];
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", activeAccount, metadata.etag];
         TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate inContext:localContext];
         
         if (record) {
@@ -775,7 +775,7 @@
         
         record.account = activeAccount;
         record.date = metadata.date;
-        record.fileID = metadata.fileID;
+        record.etag = metadata.etag;
     
         record.exifDate = [NSDate date];
         record.exifLatitude = @"-1";
@@ -797,11 +797,11 @@
     }];
 }
 
-+ (void)renameLocalFileWithFileID:(NSString *)fileID fileNameTo:(NSString *)fileNameTo fileNamePrintTo:(NSString *)fileNamePrintTo activeAccount:(NSString *)activeAccount
++ (void)renameLocalFileWithEtag:(NSString *)etag fileNameTo:(NSString *)fileNameTo fileNamePrintTo:(NSString *)fileNamePrintTo activeAccount:(NSString *)activeAccount
 {
     [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
         
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount];
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount];
         TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate inContext:localContext];
     
         if (record) {
@@ -821,7 +821,7 @@
     
         if (record) {
             
-            record.fileID = metadata.fileID;
+            record.etag = metadata.etag;
             record.date = metadata.date;
             record.fileNamePrint = metadata.fileNamePrint;
         
@@ -832,9 +832,9 @@
     }];
 }
 
-+ (TableLocalFile *)getLocalFileWithFileID:(NSString *)fileID activeAccount:(NSString *)activeAccount
++ (TableLocalFile *)getLocalFileWithEtag:(NSString *)etag activeAccount:(NSString *)activeAccount
 {
-    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount];
+    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount];
     TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate];
     
     if (record) {
@@ -856,13 +856,13 @@
             
             if (controlZombie) {
                 
-                NSString *fileID = record.fileID;
-                NSString *FilePathFileID = [NSString stringWithFormat:@"%@/%@", directoryUser, fileID];
+                NSString *etag = record.etag;
+                NSString *FilePathEtag = [NSString stringWithFormat:@"%@/%@", directoryUser, etag];
                 NSString *FilePathFileName = [NSString stringWithFormat:@"%@/%@", directoryUser, record.fileName];
-                if (![[NSFileManager defaultManager] fileExistsAtPath:FilePathFileID] && ![[NSFileManager defaultManager] fileExistsAtPath:FilePathFileName] && controlZombie) {
+                if (![[NSFileManager defaultManager] fileExistsAtPath:FilePathEtag] && ![[NSFileManager defaultManager] fileExistsAtPath:FilePathFileName] && controlZombie) {
                     
-                    // non esiste nè il file fileID e nemmeno il plist, eliminiamolo.
-                    [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount]];
+                    // non esiste nè il file etag e nemmeno il plist, eliminiamolo.
+                    [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount]];
                     
                     
                 } else [ritorno addObject:record];
@@ -884,11 +884,11 @@
 #pragma mark ===== Offline LocalFile =====
 #pragma --------------------------------------------------------------------------------------------
 
-+ (void)setOfflineLocalFileID:(NSString *)fileID offline:(BOOL)offline activeAccount:(NSString *)activeAccount
++ (void)setOfflineLocalEtag:(NSString *)etag offline:(BOOL)offline activeAccount:(NSString *)activeAccount
 {
     [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
         
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount];
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount];
         TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate inContext:localContext];
         
         if (record)
@@ -896,9 +896,9 @@
     }];
 }
 
-+ (BOOL)isOfflineLocalFileID:(NSString *)fileID activeAccount:(NSString *)activeAccount
++ (BOOL)isOfflineLocalEtag:(NSString *)etag activeAccount:(NSString *)activeAccount
 {
-    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (offline == 1) AND (account == %@)", fileID, activeAccount];
+    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(etag == %@) AND (offline == 1) AND (account == %@)", etag, activeAccount];
     TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate];
     
     if (record) return YES;
@@ -912,7 +912,7 @@
     
     for (TableLocalFile *file in files) {
         
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", file.fileID, activeAccount];
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", file.etag, activeAccount];
         //tableMetadata *metadata = [self getMetadataWithPreficate:predicate context:nil];
         
         tableMetadata *metadata =  [[NCManageDatabase sharedInstance] getMetadataWithPreficate:predicate];
@@ -937,20 +937,20 @@
 #pragma mark ===== GeoInformation =====
 #pragma --------------------------------------------------------------------------------------------
 
-+ (NSArray *)getGeoInformationLocalFromFileID:(NSString *)fileID activeAccount:(NSString *)activeAccount
++ (NSArray *)getGeoInformationLocalFromEtag:(NSString *)etag activeAccount:(NSString *)activeAccount
 {
-    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount];
+    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount];
     TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate];
     
     if (record) return [[NSArray alloc] initWithObjects:record.exifDate, record.exifLatitude, record.exifLongitude, nil];
     else return nil;
 }
 
-+ (void)setGeoInformationLocalFromFileID:(NSString *)fileID exifDate:(NSDate *)exifDate exifLatitude:(NSString *)exifLatitude exifLongitude:(NSString *)exifLongitude activeAccount:(NSString *)activeAccount
++ (void)setGeoInformationLocalFromEtag:(NSString *)etag exifDate:(NSDate *)exifDate exifLatitude:(NSString *)exifLatitude exifLongitude:(NSString *)exifLongitude activeAccount:(NSString *)activeAccount
 {
     [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
         
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, fileID];
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", activeAccount, etag];
         TableLocalFile *record = [TableLocalFile MR_findFirstWithPredicate:predicate inContext:localContext];
     
         if (record) {
@@ -1228,7 +1228,7 @@
     
     for (TableLocalFile *localFile in localFiles) {
         
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activeAccount, localFile.fileID];
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@)", activeAccount, localFile.etag];
         //TableMetadata *tableMetadata = [self getTableMetadataWithPreficate:predicate];
         tableMetadata *metadata =  [[NCManageDatabase sharedInstance] getMetadataWithPreficate:predicate];
         
@@ -1259,7 +1259,7 @@
     
     // if encrypted, rewrite
     if (metadata.cryptated == YES)
-        if ([[CCCrypto sharedManager] decrypt:metadata.fileID fileNameDecrypted:metadata.fileID fileNamePrint:metadata.fileNamePrint password:[[CCCrypto sharedManager] getKeyPasscode:metadata.uuid] directoryUser:directoryUser] == 0) return NO;
+        if ([[CCCrypto sharedManager] decrypt:metadata.etag fileNameDecrypted:metadata.etag fileNamePrint:metadata.fileNamePrint password:[[CCCrypto sharedManager] getKeyPasscode:metadata.uuid] directoryUser:directoryUser] == 0) return NO;
     
     // ------------------------------------------ COREDATA -------------------------------------------
     
@@ -1268,10 +1268,10 @@
     
     // EXIF
     if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image])
-        [CCExifGeo setExifLocalTableFileID:metadata directoryUser:directoryUser activeAccount:activeAccount];
+        [CCExifGeo setExifLocalTableEtag:metadata directoryUser:directoryUser activeAccount:activeAccount];
     
     // Icon
-    [CCGraphics createNewImageFrom:metadata.fileID directoryUser:directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
+    [CCGraphics createNewImageFrom:metadata.etag directoryUser:directoryUser fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
     
     return YES;
 }
@@ -1295,8 +1295,8 @@
     
     // ----------------------------------------- FILESYSTEM ------------------------------------------
     
-    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", directoryUser, metadata.fileID] error:nil];
-    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.fileID] error:nil];
+    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", directoryUser, metadata.etag] error:nil];
+    [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.etag] error:nil];
     
     // ------------------------------------------ DATABASE -------------------------------------------
 
@@ -1307,8 +1307,8 @@
         [self deleteDirectoryAndSubDirectory:dirForDelete activeAccount:activeAccount];
     }
     
-    [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadata.fileID, activeAccount]];
-    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadata.fileID, activeAccount]];
+    [self deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", metadata.etag, activeAccount]];
+    [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", metadata.etag, activeAccount]];
 }
 
 #pragma --------------------------------------------------------------------------------------------

+ 3 - 3
iOSClient/FileSystem/NCDatabase.swift

@@ -62,8 +62,8 @@ class tableActivity: Object {
     dynamic var account = ""
     dynamic var action = "Activity"
     dynamic var date = NSDate()
+    dynamic var etag = ""
     dynamic var file = ""
-    dynamic var fileID = ""
     dynamic var idActivity : Double = 0
     dynamic var link = ""
     dynamic var note = ""
@@ -139,8 +139,8 @@ class tableMetadata: Object {
     dynamic var directory : Bool = false
     dynamic var directoryID = ""
     dynamic var errorPasscode : Bool = false
+    dynamic var etag = ""
     dynamic var favorite : Bool = false
-    dynamic var fileID = ""
     dynamic var fileName = ""
     dynamic var fileNameData = ""
     dynamic var fileNamePrint = ""
@@ -165,7 +165,7 @@ class tableMetadata: Object {
     dynamic var uuid = ""
     
     override static func primaryKey() -> String {
-        return "fileID"
+        return "etag"
     }
 }
 

+ 3 - 3
iOSClient/FileSystem/NCManageDatabase.swift

@@ -492,7 +492,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    func addActivityClient(_ file: String, fileID: String, action: String, selector: String, note: String, type: String, verbose: Bool, activeUrl: String?) {
+    func addActivityClient(_ file: String, etag: String, action: String, selector: String, note: String, type: String, verbose: Bool, activeUrl: String?) {
 
         let tableAccount = self.getAccountActive()
         if tableAccount == nil {
@@ -516,7 +516,7 @@ class NCManageDatabase: NSObject {
             addActivity.account = tableAccount!.account
             addActivity.action = action
             addActivity.file = file
-            addActivity.fileID = fileID
+            addActivity.etag = etag
             addActivity.note = noteReplacing
             addActivity.selector = selector
             addActivity.type = type
@@ -1471,8 +1471,8 @@ class NCManageDatabase: NSObject {
         copyMetadata.directory = metadata.directory
         copyMetadata.directoryID = metadata.directoryID
         copyMetadata.errorPasscode = metadata.errorPasscode
+        copyMetadata.etag = metadata.etag
         copyMetadata.favorite = metadata.favorite
-        copyMetadata.fileID = metadata.fileID
         copyMetadata.fileName = metadata.fileName
         copyMetadata.fileNameData = metadata.fileNameData
         copyMetadata.fileNamePrint = metadata.fileNamePrint

+ 1 - 1
iOSClient/FileSystem/TableDirectory+CoreDataProperties.h

@@ -19,7 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nullable, nonatomic, copy) NSDate *dateReadDirectory;
 @property (nullable, nonatomic, copy) NSString *directoryID;
 @property (nullable, nonatomic, copy) NSNumber *favorite;
-@property (nullable, nonatomic, copy) NSString *fileID;
+@property (nullable, nonatomic, copy) NSString *etag;
 @property (nullable, nonatomic, copy) NSNumber *lock;
 @property (nullable, nonatomic, copy) NSNumber *offline;
 @property (nullable, nonatomic, copy) NSString *permissions;

+ 1 - 1
iOSClient/FileSystem/TableDirectory+CoreDataProperties.m

@@ -18,7 +18,7 @@
 @dynamic dateReadDirectory;
 @dynamic directoryID;
 @dynamic favorite;
-@dynamic fileID;
+@dynamic etag;
 @dynamic lock;
 @dynamic offline;
 @dynamic permissions;

+ 1 - 1
iOSClient/FileSystem/TableLocalFile+CoreDataProperties.h

@@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nullable, nonatomic, copy) NSString *exifLatitude;
 @property (nullable, nonatomic, copy) NSString *exifLongitude;
 @property (nullable, nonatomic, copy) NSNumber *favorite;
-@property (nullable, nonatomic, copy) NSString *fileID;
+@property (nullable, nonatomic, copy) NSString *etag;
 @property (nullable, nonatomic, copy) NSString *fileName;
 @property (nullable, nonatomic, copy) NSString *fileNamePrint;
 @property (nullable, nonatomic, copy) NSNumber *offline;

+ 1 - 1
iOSClient/FileSystem/TableLocalFile+CoreDataProperties.m

@@ -20,7 +20,7 @@
 @dynamic exifLatitude;
 @dynamic exifLongitude;
 @dynamic favorite;
-@dynamic fileID;
+@dynamic etag;
 @dynamic fileName;
 @dynamic fileNamePrint;
 @dynamic offline;

+ 13 - 13
iOSClient/Local storage/CCLocalStorage.m

@@ -171,29 +171,29 @@
     NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:_metadata.directoryID activeAccount:app.activeAccount];
     
     if ([metadata.model isEqualToString:@"cartadicredito"])
-        viewController = [[CCCartaDiCredito alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCCartaDiCredito alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"bancomat"])
-        viewController = [[CCBancomat alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCBancomat alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"contocorrente"])
-        viewController = [[CCContoCorrente alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCContoCorrente alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"accountweb"])
-        viewController = [[CCAccountWeb alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCAccountWeb alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"patenteguida"])
-        viewController = [[CCPatenteGuida alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCPatenteGuida alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"cartaidentita"])
-        viewController = [[CCCartaIdentita alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCCartaIdentita alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"passaporto"])
-        viewController = [[CCPassaporto alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCPassaporto alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
     
     if ([metadata.model isEqualToString:@"note"]) {
         
-        viewController = [[CCNote alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid fileID:metadata.fileID isLocal:isLocal serverUrl:serverUrl];
+        viewController = [[CCNote alloc] initWithDelegate:self fileName:metadata.fileName uuid:metadata.uuid etag:metadata.etag isLocal:isLocal serverUrl:serverUrl];
         
         UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
         
@@ -291,8 +291,8 @@
     actionSheet.cancelButtonTitle = NSLocalizedString(@"_cancel_",nil);
     
     // assegnamo l'immagine anteprima se esiste, altrimenti metti quella standars
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]])
-        iconHeader = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
+    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]])
+        iconHeader = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
     else
         iconHeader = [UIImage imageNamed:metadata.iconName];
     
@@ -327,7 +327,7 @@
                                         
             } else {
                                         
-                [CCCoreData setOfflineLocalFileID:metadata.fileID offline:NO activeAccount:app.activeAccount];
+                [CCCoreData setOfflineLocalEtag:metadata.etag offline:NO activeAccount:app.activeAccount];
             }
                                     
             [self.tableView setEditing:NO animated:YES];
@@ -427,10 +427,10 @@
         
     if (!cell.fileImageView.image) {
             
-        UIImage *icon = [CCGraphics createNewImageFrom:metadata.fileID directoryUser:_serverUrl fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:NO optimizedFileName:[CCUtility getOptimizedPhoto]];
+        UIImage *icon = [CCGraphics createNewImageFrom:metadata.etag directoryUser:_serverUrl fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:NO optimizedFileName:[CCUtility getOptimizedPhoto]];
             
         if (icon) {
-            [CCGraphics saveIcoWithFileID:metadata.fileNamePrint image:icon writeToFile:[NSString stringWithFormat:@"%@/.%@.ico", _serverUrl, metadata.fileNamePrint] copy:NO move:NO fromPath:nil toPath:nil];
+            [CCGraphics saveIcoWithEtag:metadata.fileNamePrint image:icon writeToFile:[NSString stringWithFormat:@"%@/.%@.ico", _serverUrl, metadata.fileNamePrint] copy:NO move:NO fromPath:nil toPath:nil];
             cell.fileImageView.image = icon;
         }
     }

+ 1 - 1
iOSClient/Main/CCDetail.h

@@ -52,7 +52,7 @@
 @property (nonatomic, strong) MWPhotoBrowser *photoBrowser;
 @property (nonatomic, strong) NSMutableArray *photos;
 @property (nonatomic, strong) NSMutableArray *thumbs;
-@property (nonatomic, strong) NSString *fileIDNowVisible;
+@property (nonatomic, strong) NSString *etagNowVisible;
 @property (nonatomic) NSUInteger indexNowVisible;
 
 // PDF

+ 35 - 35
iOSClient/Main/CCDetail.m

@@ -64,7 +64,7 @@
         self.dataSourceImagesVideos = [[NSMutableArray alloc] init];
         _dataSourceDirectoryID = [[NSMutableOrderedSet alloc] init];
         self.indexNowVisible = 0;
-        self.fileIDNowVisible = nil;
+        self.etagNowVisible = nil;
         
         app.activeDetail = self;
     }
@@ -83,7 +83,7 @@
 
     self.imageBackground.image = [UIImage imageNamed:@"backgroundDetail"];
     
-    if ([self.metadataDetail.fileName length] > 0 || [self.metadataDetail.directoryID length] > 0 || [self.metadataDetail.fileID length] > 0) {
+    if ([self.metadataDetail.fileName length] > 0 || [self.metadataDetail.directoryID length] > 0 || [self.metadataDetail.etag length] > 0) {
     
         // open view
         [self viewFile];
@@ -214,10 +214,10 @@
 - (void)viewFile
 {
     // verifico se esiste l'icona e se la posso creare
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, self.metadataDetail.fileID]] == NO) {
+    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, self.metadataDetail.etag]] == NO) {
         
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
-            [CCGraphics createNewImageFrom:self.metadataDetail.fileID directoryUser:app.directoryUser fileNameTo:self.metadataDetail.fileID fileNamePrint:self.metadataDetail.fileNamePrint size:@"m" imageForUpload:NO typeFile:self.metadataDetail.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
+            [CCGraphics createNewImageFrom:self.metadataDetail.etag directoryUser:app.directoryUser fileNameTo:self.metadataDetail.etag fileNamePrint:self.metadataDetail.fileNamePrint size:@"m" imageForUpload:NO typeFile:self.metadataDetail.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
         });
     }
     
@@ -274,7 +274,7 @@
         fileName = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryAudio], self.metadataDetail.fileNamePrint];
         
         [[NSFileManager defaultManager] removeItemAtPath:fileName error:nil];
-        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, self.metadataDetail.fileID] toPath:fileName error:nil];
+        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, self.metadataDetail.etag] toPath:fileName error:nil];
     }
     
     app.player.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - TOOLBAR_HEIGHT);
@@ -318,7 +318,7 @@
         fileName = [NSTemporaryDirectory() stringByAppendingString:self.metadataDetail.fileNamePrint];
         
         [[NSFileManager defaultManager] removeItemAtPath:fileName error:nil];
-        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, self.metadataDetail.fileID] toPath:fileName error:nil];
+        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, self.metadataDetail.etag] toPath:fileName error:nil];
     }
     
     NSString *ext=@"";
@@ -394,7 +394,7 @@
     for (tableMetadata *metadata in self.dataSourceImagesVideos) {
         
         // start from here ?
-        if (self.metadataDetail.fileID && [metadata.fileID isEqualToString:self.metadataDetail.fileID])
+        if (self.metadataDetail.etag && [metadata.etag isEqualToString:self.metadataDetail.etag])
             [self.photoBrowser setCurrentPhotoIndex:index];
         
         if (metadata.cryptated) {
@@ -461,7 +461,7 @@
     NSString *directory;
     
     self.indexNowVisible = index;
-    self.fileIDNowVisible = metadata.fileID;
+    self.etagNowVisible = metadata.etag;
     
     photoBrowser.toolbar.hidden = NO;
     
@@ -478,7 +478,7 @@
         directory = app.directoryUser;
 
     // Download
-    if (metadata && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", directory, metadata.fileID]] == NO && [metadata.session length] == 0)
+    if (metadata && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", directory, metadata.etag]] == NO && [metadata.session length] == 0)
         [self performSelector:@selector(downloadPhotoBrowser:) withObject:metadata afterDelay:0.1];
     
     // Title
@@ -502,11 +502,11 @@
     
     if (index < self.photos.count) {
         
-        if (metadata.fileID) {
+        if (metadata.etag) {
             
             if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image]) {
                 
-                NSString *fileImage = [NSString stringWithFormat:@"%@/%@", directory, metadata.fileID];
+                NSString *fileImage = [NSString stringWithFormat:@"%@/%@", directory, metadata.etag];
                 NSString *ext = [CCUtility getExtension:metadata.fileNamePrint];
                 
                 if ([ext isEqualToString:@"GIF"]) image = [UIImage animatedImageWithAnimatedGIFURL:[NSURL fileURLWithPath:fileImage]];
@@ -517,7 +517,7 @@
                     MWPhoto *photo = [MWPhoto photoWithImage:image];
                     
                     // Location ??
-                    [self setLocationCaptionPhoto:photo fileID:metadata.fileID];
+                    [self setLocationCaptionPhoto:photo etag:metadata.etag];
                     
                     [self.photos replaceObjectAtIndex:index withObject:photo];
                     
@@ -536,13 +536,13 @@
             
             if ([metadata.typeFile isEqualToString: k_metadataTypeFile_video]) {
                 
-                if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", directory, metadata.fileID]]) {
+                if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", directory, metadata.etag]]) {
                     
                     // remove and make the simbolic link in temp
                     NSString *toPath = [NSTemporaryDirectory() stringByAppendingString:metadata.fileNamePrint];
                     
                     [[NSFileManager defaultManager] removeItemAtPath:toPath error:nil];
-                    [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", directory, metadata.fileID] toPath:toPath error:nil];
+                    [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", directory, metadata.etag] toPath:toPath error:nil];
                     NSURL *url = [NSURL fileURLWithPath:toPath];
                     
                     MWPhoto *video = [MWPhoto photoWithImage:[CCGraphics thumbnailImageForVideo:url atTime:1.0]];
@@ -619,17 +619,17 @@
 
     if (index < self.thumbs.count) {
         
-        if (metadata.fileID) {
+        if (metadata.etag) {
             
             UIImage *image;
             
             if (_sourceDirectoryLocal) {
                 
-                image = [CCGraphics createNewImageFrom:metadata.fileID directoryUser:directory fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:NO optimizedFileName:[CCUtility getOptimizedPhoto]];
+                image = [CCGraphics createNewImageFrom:metadata.etag directoryUser:directory fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:NO optimizedFileName:[CCUtility getOptimizedPhoto]];
                 
             } else {
                 
-                NSString *fileImage = [NSString stringWithFormat:@"%@/%@.ico", directory, metadata.fileID];
+                NSString *fileImage = [NSString stringWithFormat:@"%@/%@.ico", directory, metadata.etag];
                 
                 image = [UIImage animatedImageWithAnimatedGIFURL:[NSURL fileURLWithPath:fileImage]];
             }
@@ -663,7 +663,7 @@
         filePath = [NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileNamePrint];
         
         [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
-        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID] toPath:filePath error:nil];
+        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag] toPath:filePath error:nil];
     }
     
     self.docController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePath]];
@@ -684,7 +684,7 @@
 - (void)photoBrowser:(MWPhotoBrowser *)photoBrowser deleteButtonPressedForPhotoAtIndex:(NSUInteger)index deleteButton:(UIBarButtonItem *)deleteButton
 {
     tableMetadata *metadata = [self.dataSourceImagesVideos objectAtIndex:index];
-    if (metadata == nil || [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID]] == NO) {
+    if (metadata == nil || [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag]] == NO) {
         
         [app messageNotification:@"_info_" description:@"_file_not_found_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeInfo errorCode:0];
         
@@ -744,7 +744,7 @@
         tableMetadata *metadata = [self.dataSourceImagesVideos objectAtIndex:i];
         
         // search index
-        if ([metadataVar.fileID isEqualToString:metadata.fileID]) {
+        if ([metadataVar.etag isEqualToString:metadata.etag]) {
             
             index = i;
             break;
@@ -756,7 +756,7 @@
     
     //NSLog(@"[LOG] Add Download Photo Browser");
     
-    if ([metadataVar.fileID isEqualToString:self.fileIDNowVisible] || [self.photoBrowser isGridReload:index]) {
+    if ([metadataVar.etag isEqualToString:self.etagNowVisible] || [self.photoBrowser isGridReload:index]) {
         
         [self.photoBrowser reloadData];
         
@@ -772,7 +772,7 @@
 {
     NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account];
     
-    [[CCNetworking sharedNetworking] downloadFile:metadata.fileID serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorLoadViewImage selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:nil];
+    [[CCNetworking sharedNetworking] downloadFile:metadata.etag serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorLoadViewImage selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:nil];
 }
 
 - (void)insertGeocoderLocation:(NSNotification *)notification
@@ -780,18 +780,18 @@
     if (notification.userInfo.count == 0)
         return;
     
-    NSString *fileID = [[notification.userInfo allKeys] objectAtIndex:0];
+    NSString *etag = [[notification.userInfo allKeys] objectAtIndex:0];
     //NSDate *date = [[notification.userInfo allValues] objectAtIndex:0];
  
     // test [Chrash V 1.14,15]
     if (self.indexNowVisible >= [self.photos count])
         return;
     
-    if ([fileID isEqualToString:self.fileIDNowVisible]) {
+    if ([etag isEqualToString:self.etagNowVisible]) {
             
         MWPhoto *photo = [self.photos objectAtIndex:self.indexNowVisible];
             
-        [self setLocationCaptionPhoto:photo fileID:fileID];
+        [self setLocationCaptionPhoto:photo etag:etag];
             
         if (![self.photoBrowser isGridController]) {
             
@@ -801,27 +801,27 @@
     }
 }
 
-- (void)setLocationCaptionPhoto:(MWPhoto *)photo fileID:(NSString *)fileID
+- (void)setLocationCaptionPhoto:(MWPhoto *)photo etag:(NSString *)etag
 {
     TableLocalFile *localFile;
 
     // read Geocoder
-    localFile = [CCCoreData getLocalFileWithFileID:fileID activeAccount:app.activeAccount];
+    localFile = [CCCoreData getLocalFileWithEtag:etag activeAccount:app.activeAccount];
     
     if ([localFile.exifLatitude doubleValue] != 0 || [localFile.exifLongitude doubleValue] != 0) {
         
         // Fix BUG Geo latitude & longitude
         if ([localFile.exifLatitude doubleValue] == 9999 || [localFile.exifLongitude doubleValue] == 9999) {
             
-            tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+            tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
             if (metadata) {
-                [CCExifGeo setExifLocalTableFileID:metadata directoryUser:app.directoryUser activeAccount:app.activeAccount];
+                [CCExifGeo setExifLocalTableEtag:metadata directoryUser:app.directoryUser activeAccount:app.activeAccount];
             }
         }
         
-        [CCExifGeo setGeocoderFileID:fileID exifDate:localFile.exifDate latitude:localFile.exifLatitude longitude:localFile.exifLongitude];
+        [CCExifGeo setGeocoderEtag:etag exifDate:localFile.exifDate latitude:localFile.exifLatitude longitude:localFile.exifLongitude];
         
-        localFile = [CCCoreData getLocalFileWithFileID:fileID activeAccount:app.activeAccount];
+        localFile = [CCCoreData getLocalFileWithEtag:etag activeAccount:app.activeAccount];
         
         if ([localFile.exifLatitude floatValue] != 0 || [localFile.exifLongitude floatValue] != 0) {
                         
@@ -863,7 +863,7 @@
         fileName = [NSTemporaryDirectory() stringByAppendingString:self.metadataDetail.fileNamePrint];
         
         [[NSFileManager defaultManager] removeItemAtPath:fileName error:nil];
-        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, self.metadataDetail.fileID] toPath:fileName error:nil];
+        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, self.metadataDetail.etag] toPath:fileName error:nil];
     }
     
     if ([[NSFileManager defaultManager] fileExistsAtPath:fileName isDirectory:nil] == NO) {
@@ -982,14 +982,14 @@
     if (_webView || _readerPDFViewController)
         [self removeAllView];
     
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", metadataNet.fileID]];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"etag = %@", metadataNet.etag]];
     
     // if a message for a directory of these
     if (![_dataSourceDirectoryID containsObject:metadata.directoryID])
         return;
     
     // if we are not in browserPhoto and it's removed photo/video in preview then "< Back"
-    if (!self.photoBrowser && [self.metadataDetail.fileID isEqualToString:metadata.fileID]) {
+    if (!self.photoBrowser && [self.metadataDetail.etag isEqualToString:metadata.etag]) {
         
         if ([metadata.typeFile isEqualToString: k_metadataTypeFile_audio])
             [app.player.mediaPlayer stop];
@@ -1013,7 +1013,7 @@
             tableMetadata *metadata = [self.dataSourceImagesVideos objectAtIndex:index];
         
             // ricerca index
-            if ([metadata.fileID isEqualToString:metadata.fileID]) {
+            if ([metadata.etag isEqualToString:metadata.etag]) {
             
                 [self.dataSourceImagesVideos removeObjectAtIndex:index];
             

+ 1 - 1
iOSClient/Main/CCMain.h

@@ -89,7 +89,7 @@
 - (void)stopTaskButton:(tableMetadata *)metadata;
 
 - (void)reloadDatasource;
-- (void)reloadDatasource:(NSString *)serverUrl fileID:(NSString *)fileID selector:(NSString *)selector;
+- (void)reloadDatasource:(NSString *)serverUrl etag:(NSString *)etag selector:(NSString *)selector;
 
 - (void)requestServerCapabilities;
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 146 - 146
iOSClient/Main/CCMain.m


+ 2 - 2
iOSClient/Main/CCSection.h

@@ -26,10 +26,10 @@
 @interface CCSectionDataSourceMetadata : NSObject
     
 @property (nonatomic, strong) NSMutableDictionary *allRecordsDataSource;
-@property (nonatomic, strong) NSMutableArray *allFileID;
+@property (nonatomic, strong) NSMutableArray *allEtag;
 @property (nonatomic, strong) NSMutableArray *sections;
 @property (nonatomic, strong) NSMutableDictionary *sectionArrayRow;
-@property (nonatomic, strong) NSMutableDictionary *fileIDIndexPath;
+@property (nonatomic, strong) NSMutableDictionary *etagIndexPath;
 
 @property NSInteger video;
 @property NSInteger image;

+ 18 - 18
iOSClient/Main/CCSection.m

@@ -33,10 +33,10 @@
     self = [super init];
     
     _allRecordsDataSource = [[NSMutableDictionary alloc] init];
-    _allFileID  = [[NSMutableArray alloc] init];
+    _allEtag  = [[NSMutableArray alloc] init];
     _sections = [[NSMutableArray alloc] init];
     _sectionArrayRow = [[NSMutableDictionary alloc] init];
-    _fileIDIndexPath = [[NSMutableDictionary alloc] init];
+    _etagIndexPath = [[NSMutableDictionary alloc] init];
     
     _image = 0;
     _video = 0;
@@ -61,7 +61,7 @@
     long counterSessionDownload = 0;
     long counterSessionUpload = 0;
     NSMutableArray *copyRecords = [NSMutableArray new];
-    NSMutableDictionary *dictionaryFileIDMetadataForIndexPath = [NSMutableDictionary new];
+    NSMutableDictionary *dictionaryEtagMetadataForIndexPath = [NSMutableDictionary new];
     
     CCSectionDataSourceMetadata *sectionDataSource = [CCSectionDataSourceMetadata new];
     
@@ -77,13 +77,13 @@
         // if exists replace date with exif date
         /*
         if (replaceDateToExifDate) {
-            TableLocalFile *localFile = [CCCoreData getLocalFileWithFileID:metadata.fileID activeAccount:activeAccount];
+            TableLocalFile *localFile = [CCCoreData getLocalFileWithFileID:metadata.etag activeAccount:activeAccount];
             if (localFile.exifDate)
                 metadata.date = localFile.exifDate;
         }
         */
         
-        if ([listProgressMetadata objectForKey:metadata.fileID] && [groupByField isEqualToString:@"session"]) {
+        if ([listProgressMetadata objectForKey:metadata.etag] && [groupByField isEqualToString:@"session"]) {
             [copyRecords insertObject:metadata atIndex:0];
         } else {
             
@@ -132,18 +132,18 @@
         if (metadatas) {
             
             // ROW ++
-            [metadatas addObject:metadata.fileID];
+            [metadatas addObject:metadata.etag];
             [sectionDataSource.sectionArrayRow setObject:metadatas forKey:dataSection];
             
         } else {
             
             // SECTION ++
-            metadatas = [[NSMutableArray alloc] initWithObjects:metadata.fileID, nil];
+            metadatas = [[NSMutableArray alloc] initWithObjects:metadata.etag, nil];
             [sectionDataSource.sectionArrayRow setObject:metadatas forKey:dataSection];
         }
 
-        if (metadata && [metadata.fileID length] > 0)
-            [dictionaryFileIDMetadataForIndexPath setObject:metadata forKey:metadata.fileID];
+        if (metadata && [metadata.etag length] > 0)
+            [dictionaryEtagMetadataForIndexPath setObject:metadata forKey:metadata.etag];
     }
     
     /*
@@ -175,7 +175,7 @@
     }];
     
     /*
-    create allFileID, allRecordsDataSource, fileIDIndexPath, section
+    create allEtag, allRecordsDataSource, etagIndexPath, section
     */
     
     NSInteger indexSection = 0;
@@ -187,15 +187,15 @@
         
         NSArray *rows = [sectionDataSource.sectionArrayRow objectForKey:section];
         
-        for (NSString *fileID in rows) {
+        for (NSString *etag in rows) {
             
-            tableMetadata *metadata = [dictionaryFileIDMetadataForIndexPath objectForKey:fileID];
+            tableMetadata *metadata = [dictionaryEtagMetadataForIndexPath objectForKey:etag];
             
-            if (metadata.fileID) {
+            if (metadata.etag) {
                 
-                [sectionDataSource.allFileID addObject:metadata.fileID];
-                [sectionDataSource.allRecordsDataSource setObject:metadata forKey:metadata.fileID];
-                [sectionDataSource.fileIDIndexPath setObject:[NSIndexPath indexPathForRow:indexRow inSection:indexSection] forKey:metadata.fileID];
+                [sectionDataSource.allEtag addObject:metadata.etag];
+                [sectionDataSource.allRecordsDataSource setObject:metadata forKey:metadata.etag];
+                [sectionDataSource.etagIndexPath setObject:[NSIndexPath indexPathForRow:indexRow inSection:indexSection] forKey:metadata.etag];
                 
                 if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image])
                     sectionDataSource.image++;
@@ -225,10 +225,10 @@
 + (void)removeAllObjectsSectionDataSource:(CCSectionDataSourceMetadata *)sectionDataSource
 {
     [sectionDataSource.allRecordsDataSource removeAllObjects];
-    [sectionDataSource.allFileID removeAllObjects];
+    [sectionDataSource.allEtag removeAllObjects];
     [sectionDataSource.sections removeAllObjects];
     [sectionDataSource.sectionArrayRow removeAllObjects];
-    [sectionDataSource.fileIDIndexPath removeAllObjects];
+    [sectionDataSource.etagIndexPath removeAllObjects];
     
     sectionDataSource.image = 0;
     sectionDataSource.video = 0;

+ 5 - 5
iOSClient/Move/CCMove.m

@@ -240,13 +240,13 @@
 
 // MARK: - Download File
 
-- (void)downloadFileSuccess:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)downloadFileSuccess:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     if ([selector isEqualToString:selectorLoadPlist]) {
 
-        //tableMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount] context:nil];
+        //tableMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount] context:nil];
         
-        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, activeAccount]];
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(etag == %@) AND (account == %@)", etag, activeAccount]];
         
         [CCCoreData downloadFilePlist:metadata activeAccount:activeAccount activeUrl:activeUrl directoryUser:directoryUser];
         
@@ -254,7 +254,7 @@
     }
 }
 
-- (void)downloadFileFailure:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)downloadFileFailure:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     self.move.enabled = NO;
 }
@@ -314,7 +314,7 @@
                     metadataNet.action = actionDownloadFile;
                     metadataNet.downloadData = NO;
                     metadataNet.downloadPlist = YES;
-                    metadataNet.fileID = metadata.fileID;
+                    metadataNet.etag = metadata.etag;
                     metadataNet.selector = selectorLoadPlist;
                     metadataNet.serverUrl = _serverUrl;
                     metadataNet.session = k_download_session_foreground;

+ 7 - 7
iOSClient/Networking/CCNetworking.h

@@ -59,7 +59,7 @@
 - (void)settingSession:(NSString *)sessionDescription sessionTaskIdentifier:(NSUInteger)sessionTaskIdentifier taskStatus:(NSInteger)taskStatus;
 
 // Download
-- (void)downloadFile:(NSString *)fileID serverUrl:(NSString *)serverUrl downloadData:(BOOL)downloadData downloadPlist:(BOOL)downloadPlist selector:(NSString *)selector selectorPost:(NSString *)selectorPost session:(NSString *)session taskStatus:(NSInteger)taskStatus delegate:(id)delegate;
+- (void)downloadFile:(NSString *)etag serverUrl:(NSString *)serverUrl downloadData:(BOOL)downloadData downloadPlist:(BOOL)downloadPlist selector:(NSString *)selector selectorPost:(NSString *)selectorPost session:(NSString *)session taskStatus:(NSInteger)taskStatus delegate:(id)delegate;
 
 // Upload
 - (void)uploadFileFromAssetLocalIdentifier:(NSString *)assetLocalIdentifier fileName:(NSString *)fileName serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorCode:(NSInteger)errorCode delegate:(id)delegate;
@@ -75,16 +75,16 @@
 
 @protocol CCNetworkingDelegate <NSObject>
 
-@optional - (void)reloadDatasource:(NSString *)serverUrl fileID:(NSString *)fileID selector:(NSString *)selector;
+@optional - (void)reloadDatasource:(NSString *)serverUrl etag:(NSString *)etag selector:(NSString *)selector;
 @optional - (void)comandoCreaCartella:(NSString *)fileNameFolder cameraUpload:(BOOL)cameraUpload;
 
 @optional - (void)downloadTaskSave:(NSURLSessionDownloadTask *)downloadTask;
-@optional - (void)downloadFileSuccess:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
-@optional - (void)downloadFileFailure:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
+@optional - (void)downloadFileSuccess:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
+@optional - (void)downloadFileFailure:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 @optional - (void)uploadTaskSave:(NSURLSessionUploadTask *)uploadTask;
-@optional - (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
-@optional - (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
+@optional - (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
+@optional - (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 @end
 
@@ -108,7 +108,7 @@
 @property NSInteger errorCode;
 @property NSInteger errorRetry;
 @property (nonatomic, strong) NSString *expirationTime;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *fileNameTo;
 @property (nonatomic, strong) NSString *fileNameLocal;

+ 120 - 120
iOSClient/Networking/CCNetworking.m

@@ -419,18 +419,18 @@
                 date = [dateFormatter dateFromString:[fields objectForKey:@"Date"]];
 
                 // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionDownload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:metadata.etag action:k_activityDebugActionDownload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                 
             } else {
             
                 // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionDownload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault  activeUrl:_activeUrl];
+                [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:metadata.etag action:k_activityDebugActionDownload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault  activeUrl:_activeUrl];
             }
         
             NSArray *object = [[NSArray alloc] initWithObjects:session, metadata, task, nil];
             [[NSNotificationCenter defaultCenter] postNotificationName:k_networkingSessionNotification object:object];
                 
-            [self downloadFileSuccessFailure:fileName fileID:metadata.fileID rev:rev date:date serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorCode:errorCode];
+            [self downloadFileSuccessFailure:fileName etag:metadata.etag rev:rev date:date serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorCode:errorCode];
         });
     }
     
@@ -445,28 +445,28 @@
             if (!metadata) return;
             
             NSDictionary *fields = [httpResponse allHeaderFields];
-            __block NSString *fileID = metadata.fileID;
+            __block NSString *etag = metadata.etag;
             __block NSString *rev = metadata.rev;
             
             if (errorCode == 0) {
             
-                fileID = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-FileId"]];
+                etag = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-FileId"]];
                 rev = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-ETag"]];
                 date = [dateFormatter dateFromString:[fields objectForKey:@"Date"]];
             
                 // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:etag action:k_activityDebugActionUpload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
 
             } else {
             
                 // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault   activeUrl:_activeUrl];
+                [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:metadata.etag action:k_activityDebugActionUpload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault   activeUrl:_activeUrl];
             }
                     
             NSArray *object = [[NSArray alloc] initWithObjects:session, metadata, task, nil];
             [[NSNotificationCenter defaultCenter] postNotificationName:k_networkingSessionNotification object:object];
                 
-            [self uploadFileSuccessFailure:metadata fileName:fileName fileID:fileID rev:rev date:date serverUrl:serverUrl errorCode:errorCode];
+            [self uploadFileSuccessFailure:metadata fileName:fileName etag:etag rev:rev date:date serverUrl:serverUrl errorCode:errorCode];
         });
     }
 }
@@ -475,39 +475,39 @@
 #pragma mark =====  Download =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)downloadFile:(NSString *)fileID serverUrl:(NSString *)serverUrl downloadData:(BOOL)downloadData downloadPlist:(BOOL)downloadPlist selector:(NSString *)selector selectorPost:(NSString *)selectorPost session:(NSString *)session taskStatus:(NSInteger)taskStatus delegate:(id)delegate
+- (void)downloadFile:(NSString *)etag serverUrl:(NSString *)serverUrl downloadData:(BOOL)downloadData downloadPlist:(BOOL)downloadPlist selector:(NSString *)selector selectorPost:(NSString *)selectorPost session:(NSString *)session taskStatus:(NSInteger)taskStatus delegate:(id)delegate
 {
     // add delegate
     if (delegate)
-        [_delegates setObject:delegate forKey:fileID];
+        [_delegates setObject:delegate forKey:etag];
     
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
     
     if (downloadData) {
         
         // it's in download
-        tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@ AND session CONTAINS 'download' AND sessionTaskIdentifier >= 0", _activeAccount, metadata.fileID]];
+        tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"etag = %@ AND session CONTAINS 'download' AND sessionTaskIdentifier >= 0", _activeAccount, metadata.etag]];
         if (result) return;
         
         // File exists ?
-        if ([CCCoreData getLocalFileWithFileID:metadata.fileID activeAccount:_activeAccount] && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.fileID]]) {
+        if ([CCCoreData getLocalFileWithEtag:metadata.etag activeAccount:_activeAccount] && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.etag]]) {
             
-            [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"etag = %@", metadata.etag]];
                 
-            if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(downloadFileSuccess:serverUrl:selector:selectorPost:)])
-                [[self getDelegate:metadata.fileID] downloadFileSuccess:metadata.fileID serverUrl:serverUrl selector:selector selectorPost:selectorPost];
+            if ([[self getDelegate:metadata.etag] respondsToSelector:@selector(downloadFileSuccess:serverUrl:selector:selectorPost:)])
+                [[self getDelegate:metadata.etag] downloadFileSuccess:metadata.etag serverUrl:serverUrl selector:selector selectorPost:selectorPost];
 
             return;
         }
         
-        [self downloaURLSession:metadata.fileNameData fileNamePrint:metadata.fileNamePrint serverUrl:serverUrl fileID:metadata.fileID session:session taskStatus:taskStatus selector:selector];
+        [self downloaURLSession:metadata.fileNameData fileNamePrint:metadata.fileNamePrint serverUrl:serverUrl etag:metadata.etag session:session taskStatus:taskStatus selector:selector];
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:session sessionError:@"" sessionSelector:selector sessionSelectorPost:selectorPost sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@",metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:session sessionError:@"" sessionSelector:selector sessionSelectorPost:selectorPost sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"etag = %@",metadata.etag]];
     }
     
     if (downloadPlist) {
         
-        tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@) AND (session CONTAINS 'download') AND (sessionTaskIdentifierPlist >= 0)", _activeAccount, metadata.fileID]];
+        tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (etag == %@) AND (session CONTAINS 'download') AND (sessionTaskIdentifierPlist >= 0)", _activeAccount, metadata.etag]];
         
         // it's in download
         if (result) {
@@ -517,13 +517,13 @@
             return;
         }
         
-        [self downloaURLSession:metadata.fileName fileNamePrint:metadata.fileNamePrint serverUrl:serverUrl fileID:metadata.fileID session:session taskStatus:taskStatus selector:selector];
+        [self downloaURLSession:metadata.fileName fileNamePrint:metadata.fileNamePrint serverUrl:serverUrl etag:metadata.etag session:session taskStatus:taskStatus selector:selector];
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:session sessionError:@"" sessionSelector:selector sessionSelectorPost:selectorPost sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@",metadata.fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:session sessionError:@"" sessionSelector:selector sessionSelectorPost:selectorPost sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"etag = %@",metadata.etag]];
     }
 }
 
-- (void)downloaURLSession:(NSString *)fileName fileNamePrint:(NSString *)fileNamePrint serverUrl:(NSString *)serverUrl fileID:(NSString *)fileID session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector
+- (void)downloaURLSession:(NSString *)fileName fileNamePrint:(NSString *)fileNamePrint serverUrl:(NSString *)serverUrl etag:(NSString *)etag session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector
 {
     NSURLSession *sessionDownload;
     NSURL *url;
@@ -548,8 +548,8 @@
     else if (taskStatus == k_taskStatusSuspend) [downloadTask suspend];
     else if (taskStatus == k_taskStatusResume) [downloadTask resume];
 
-    if ([[self getDelegate:fileID] respondsToSelector:@selector(downloadTaskSave:)])
-        [[self getDelegate:fileID] downloadTaskSave:downloadTask];
+    if ([[self getDelegate:etag] respondsToSelector:@selector(downloadTaskSave:)])
+        [[self getDelegate:etag] downloadTaskSave:downloadTask];
     
     if (downloadTask == nil) {
         
@@ -559,7 +559,7 @@
         if ([CCUtility isFileNotCryptated:fileName] || [CCUtility isCryptoString:fileName]) sessionTaskIdentifier = k_taskIdentifierError;
         if ([CCUtility isCryptoPlistString:fileName]) sessionTaskIdentifierPlist = k_taskIdentifierError;
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @k_CCErrorTaskNil] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @k_CCErrorTaskNil] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         NSLog(@"[LOG] downloadFileSession TaskIdentifier [error CCErrorTaskNil] - %@ - %@", fileName, fileNamePrint);
         
@@ -571,14 +571,14 @@
         if ([CCUtility isCryptoString:fileName] || [CCUtility isFileNotCryptated:fileName]) sessionTaskIdentifier = downloadTask.taskIdentifier;
         if ([CCUtility isCryptoPlistString:fileName]) sessionTaskIdentifierPlist = downloadTask.taskIdentifier;
         
-        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:nil sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:nil sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
-        NSLog(@"[LOG] downloadFileSession %@ - %@ Task [%lu %lu]", fileID, fileNamePrint, (unsigned long)sessionTaskIdentifier, (unsigned long)sessionTaskIdentifierPlist);
+        NSLog(@"[LOG] downloadFileSession %@ - %@ Task [%lu %lu]", etag, fileNamePrint, (unsigned long)sessionTaskIdentifier, (unsigned long)sessionTaskIdentifierPlist);
     }
     
     // Refresh datasource if is not a Plist
-    if ([_delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)] && [CCUtility isCryptoPlistString:fileName] == NO)
-        [_delegate reloadDatasource:serverUrl fileID:fileID selector:selector];
+    if ([_delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)] && [CCUtility isCryptoPlistString:fileName] == NO)
+        [_delegate reloadDatasource:serverUrl etag:etag selector:selector];
         
 #ifndef EXTENSION
         [app updateApplicationIconBadgeNumber];
@@ -603,7 +603,7 @@
         
         if (metadata) {
         
-            NSDictionary* userInfo = @{@"fileID": (metadata.fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:metadata.cryptated]), @"progress": ([NSNumber numberWithFloat:progress])};
+            NSDictionary* userInfo = @{@"etag": (metadata.etag), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:metadata.cryptated]), @"progress": ([NSNumber numberWithFloat:progress])};
             
             [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
         }
@@ -632,8 +632,8 @@
             
         } else {
             
-            if (metadata.cryptated) destinationFilePath = [NSString stringWithFormat:@"%@/%@.crypt", [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl], metadata.fileID];
-            else destinationFilePath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl], metadata.fileID];
+            if (metadata.cryptated) destinationFilePath = [NSString stringWithFormat:@"%@/%@.crypt", [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl], metadata.etag];
+            else destinationFilePath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl], metadata.etag];
         }
         
         @autoreleasepool {
@@ -646,18 +646,18 @@
     }
 }
 
-- (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID rev:(NSString *)rev date:(NSDate *)date serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorCode:(NSInteger)errorCode
+- (void)downloadFileSuccessFailure:(NSString *)fileName etag:(NSString *)etag rev:(NSString *)rev date:(NSDate *)date serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorCode:(NSInteger)errorCode
 {
 #ifndef EXTENSION
-    if (fileID)
-        [app.listProgressMetadata removeObjectForKey:fileID];
+    if (etag)
+        [app.listProgressMetadata removeObjectForKey:etag];
 #endif
     
-    // If fileID do not exists return.
-    if (!fileID) return;
+    // If etag do not exists return.
+    if (!etag) return;
     
     // Progress Task
-    NSDictionary* userInfo = @{@"fileID": (fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
+    NSDictionary* userInfo = @{@"etag": (etag), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
     [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
 
     if (errorCode != 0) {
@@ -666,19 +666,19 @@
         //
         if (errorCode == kCFURLErrorCancelled || [CCUtility isCryptoPlistString:fileName]) {
             
-            [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
             
         } else {
             
-            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @(errorCode)] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @(errorCode)] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         }
         
-        if ([[self getDelegate:fileID] respondsToSelector:@selector(downloadFileFailure:serverUrl:selector:message:errorCode:)])
-            [[self getDelegate:fileID] downloadFileFailure:fileID serverUrl:serverUrl selector:selector message:[CCError manageErrorKCF:errorCode withNumberError:YES] errorCode:errorCode];
+        if ([[self getDelegate:etag] respondsToSelector:@selector(downloadFileFailure:serverUrl:selector:message:errorCode:)])
+            [[self getDelegate:etag] downloadFileFailure:etag serverUrl:serverUrl selector:selector message:[CCError manageErrorKCF:errorCode withNumberError:YES] errorCode:errorCode];
         
     } else {
         
-        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         if (!metadata) return;
         
         NSInteger sessionTaskIdentifier = metadata.sessionTaskIdentifier;
@@ -689,11 +689,11 @@
         
         if (sessionTaskIdentifier == k_taskIdentifierDone && sessionTaskIdentifierPlist == k_taskIdentifierDone) {
             
-            [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
             
         } else {
             
-            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:nil sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+            [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:nil sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         }
         
         // DATA
@@ -702,8 +702,8 @@
             [CCCoreData downloadFile:metadata directoryUser:_directoryUser activeAccount:_activeAccount];
         }
         
-        if ([[self getDelegate:fileID] respondsToSelector:@selector(downloadFileSuccess:serverUrl:selector:selectorPost:)])
-            [[self getDelegate:fileID] downloadFileSuccess:fileID serverUrl:serverUrl selector:selector selectorPost:selectorPost];
+        if ([[self getDelegate:etag] respondsToSelector:@selector(downloadFileSuccess:serverUrl:selector:selectorPost:)])
+            [[self getDelegate:etag] downloadFileSuccess:etag serverUrl:serverUrl selector:selector selectorPost:selectorPost];
         }
 }
 
@@ -730,10 +730,10 @@
         
         if (!result.count) {
             
-            [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:@"Internal error image/video not found" type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+            [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:@"Internal error image/video not found" type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
             
-            if ([delegate respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                [delegate uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:@"Internal error image/video not found" errorCode: k_CCErrorInternalError];
+            if ([delegate respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                [delegate uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:@"Internal error image/video not found" errorCode: k_CCErrorInternalError];
             return;
         }
         
@@ -773,13 +773,13 @@
                             } else if (AVAssetExportSessionStatusFailed == exportSession.status) {
                                 
                                 // Activity
-                                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_read_file_error_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                                [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_read_file_error_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                                 
                                 dispatch_async(dispatch_get_main_queue(), ^{
                                     
                                     // Error for uploadFileFailure
-                                    if ([delegate respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                                        [delegate uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:@"_read_file_error_" errorCode:[NSError errorWithDomain:@"it.twsweb.cryptocloud" code:kCFURLErrorFileDoesNotExist userInfo:nil].code];
+                                    if ([delegate respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                                        [delegate uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:@"_read_file_error_" errorCode:[NSError errorWithDomain:@"it.twsweb.cryptocloud" code:kCFURLErrorFileDoesNotExist userInfo:nil].code];
                                 });
                                                                 
                             } else {
@@ -790,13 +790,13 @@
                     } else {
                         
                         // Activity
-                        [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_read_file_error_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                        [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_read_file_error_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                         
                         dispatch_async(dispatch_get_main_queue(), ^{
                             
                             // Error for uploadFileFailure
-                            if ([delegate respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                                [delegate uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:@"_read_file_error_" errorCode:[NSError errorWithDomain:@"it.twsweb.cryptocloud" code:kCFURLErrorFileDoesNotExist userInfo:nil].code];
+                            if ([delegate respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                                [delegate uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:@"_read_file_error_" errorCode:[NSError errorWithDomain:@"it.twsweb.cryptocloud" code:kCFURLErrorFileDoesNotExist userInfo:nil].code];
                         });
                     }
                 }];
@@ -818,13 +818,13 @@
                     if (error) {
                     
                         // Activity
-                        [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_read_file_error_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                        [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:assetLocalIdentifier action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_read_file_error_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
 
                         dispatch_async(dispatch_get_main_queue(), ^{
                         
                             // Error for uploadFileFailure
-                            if ([delegate respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                                [delegate uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:@"_read_file_error_" errorCode:error.code];
+                            if ([delegate respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                                [delegate uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:@"_read_file_error_" errorCode:error.code];
                         });
                     
                     } else {
@@ -861,7 +861,7 @@
     
     tableMetadata *metadata = [CCUtility insertFileSystemInMetadata:fileName directory:_directoryUser activeAccount:_activeAccount cameraFolderName:cameraFolderName cameraFolderPath:cameraFolderPath];
     
-    //fileID
+    //etag
     NSString *uploadID =  [k_uploadSessionID stringByAppendingString:[CCUtility createRandomString:16]];
     
     //add delegate
@@ -875,7 +875,7 @@
         [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
         
         metadata.date = [NSDate new];
-        metadata.fileID = uploadID;
+        metadata.etag = uploadID;
         metadata.directoryID = directoryID;
         metadata.fileNameData = [CCUtility trasformedFileNamePlistInCrypto:fileName];
         metadata.assetLocalIdentifier = assetLocalIdentifier;
@@ -905,7 +905,7 @@
             [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
             
             metadata.date = [NSDate new];
-            metadata.fileID = uploadID;
+            metadata.etag = uploadID;
             metadata.directoryID = directoryID;
             metadata.fileName = [fileNameCrypto stringByAppendingString:@".plist"];
             metadata.fileNameData = fileNameCrypto;
@@ -956,8 +956,8 @@
                     [alertWindow.rootViewController presentViewController:alertController animated:YES completion:nil];
                     
                     // Error for uploadFileFailure
-                    if ([[self getDelegate:uploadID] respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                        [[self getDelegate:uploadID] uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_encrypt_error_", nil) errorCode:0];
+                    if ([[self getDelegate:uploadID] respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                        [[self getDelegate:uploadID] uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_encrypt_error_", nil) errorCode:0];
                 });
             
                 return;
@@ -965,7 +965,7 @@
         
             metadata.cryptated = YES;
             metadata.date = [NSDate new];
-            metadata.fileID = uploadID;
+            metadata.etag = uploadID;
             metadata.directoryID = directoryID;
             metadata.fileName = [fileNameCrypto stringByAppendingString:@".plist"];
             metadata.fileNameData = fileNameCrypto;
@@ -985,13 +985,13 @@
                 UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
                     
                     // Activity
-                    [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:uploadID action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_file_already_exists_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                    [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:uploadID action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_file_already_exists_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         // Error for uploadFileFailure
-                        if ([[self getDelegate:uploadID] respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                            [[self getDelegate:uploadID] uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_already_exists_", nil) errorCode:403];
+                        if ([[self getDelegate:uploadID] respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                            [[self getDelegate:uploadID] uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_already_exists_", nil) errorCode:403];
                     });
                     
                     return;
@@ -1059,7 +1059,7 @@
         
         metadata.cryptated = NO;
         metadata.date = [NSDate new];
-        metadata.fileID = uploadID;
+        metadata.etag = uploadID;
         metadata.directoryID = directoryID;
         metadata.fileName = fileName;
         metadata.fileNameData = fileName;
@@ -1079,13 +1079,13 @@
             UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
                 
                 // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:uploadID action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_file_already_exists_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+                [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:uploadID action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_file_already_exists_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     // Error for uploadFileFailure
-                    if ([[self getDelegate:uploadID] respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                        [[self getDelegate:uploadID] uploadFileFailure:nil fileID:nil serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_already_exists_", nil) errorCode:403];
+                    if ([[self getDelegate:uploadID] respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                        [[self getDelegate:uploadID] uploadFileFailure:nil etag:nil serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_already_exists_", nil) errorCode:403];
                 });
                 
                 return;
@@ -1102,7 +1102,7 @@
                 [CCCoreData deleteFile:metadataDelete serverUrl:serverUrl directoryUser:_directoryUser activeAccount:_activeAccount];
                 
                 // -- Go to Upload --
-                [CCGraphics createNewImageFrom:metadata.fileNamePrint directoryUser:_directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:YES typeFile:metadata.typeFile writePreview:YES optimizedFileName:NO];
+                [CCGraphics createNewImageFrom:metadata.fileNamePrint directoryUser:_directoryUser fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:YES typeFile:metadata.typeFile writePreview:YES optimizedFileName:NO];
                 
                 //[CCCoreData addMetadata:metadata activeAccount:_activeAccount activeUrl:_activeUrl context:_context];
                 [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:_activeUrl];
@@ -1126,7 +1126,7 @@
             // -- Go to upload --
             
 #ifndef EXTENSION
-            [CCGraphics createNewImageFrom:metadata.fileNamePrint directoryUser:_directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:YES typeFile:metadata.typeFile writePreview:YES optimizedFileName:NO];
+            [CCGraphics createNewImageFrom:metadata.fileNamePrint directoryUser:_directoryUser fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:YES typeFile:metadata.typeFile writePreview:YES optimizedFileName:NO];
 #endif
             //[CCCoreData addMetadata:metadata activeAccount:_activeAccount activeUrl:_activeUrl context:_context];
             [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:_activeUrl];
@@ -1167,7 +1167,7 @@
     
     if (send) {
         
-        NSLog(@"[LOG] Re-upload File : %@ - fileID : %@", metadata.fileNamePrint, metadata.fileID);
+        NSLog(@"[LOG] Re-upload File : %@ - etag : %@", metadata.fileNamePrint, metadata.etag);
         
         [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"sessionID = %@ AND account == %@", metadata.sessionID, _activeAccount]];
         
@@ -1219,11 +1219,11 @@
         dispatch_async(dispatch_get_main_queue(), ^{
             
             // Activity
-            [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:sessionID action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_file_not_present_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+            [[NCManageDatabase sharedInstance] addActivityClient:fileName etag:sessionID action:k_activityDebugActionUpload selector:selector note:NSLocalizedString(@"_file_not_present_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
             
             // Error for uploadFileFailure
-            if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-                [[self getDelegate:sessionID] uploadFileFailure:nil fileID:sessionID serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_not_present_", nil) errorCode:404];
+            if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+                [[self getDelegate:sessionID] uploadFileFailure:nil etag:sessionID serverUrl:serverUrl selector:selector message:NSLocalizedString(@"_file_not_present_", nil) errorCode:404];
             
             [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount]];
             
@@ -1279,8 +1279,8 @@
     dispatch_async(dispatch_get_main_queue(), ^{
         
         // refresh main
-        if ([self.delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)])
-            [self.delegate reloadDatasource:serverUrl fileID:nil selector:selector];
+        if ([self.delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)])
+            [self.delegate reloadDatasource:serverUrl etag:nil selector:selector];
         
 #ifndef EXTENSION
         [app updateApplicationIconBadgeNumber];
@@ -1319,19 +1319,19 @@
         
         if (metadata) {
             
-            NSDictionary* userInfo = @{@"fileID": (metadata.fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:metadata.cryptated]), @"progress": ([NSNumber numberWithFloat:progress])};
+            NSDictionary* userInfo = @{@"etag": (metadata.etag), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:metadata.cryptated]), @"progress": ([NSNumber numberWithFloat:progress])};
                 
             [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
         }
     });
 }
 
-- (void)uploadFileSuccessFailure:(tableMetadata *)metadata fileName:(NSString *)fileName fileID:(NSString *)fileID rev:(NSString *)rev date:(NSDate *)date serverUrl:(NSString *)serverUrl errorCode:(NSInteger)errorCode
+- (void)uploadFileSuccessFailure:(tableMetadata *)metadata fileName:(NSString *)fileName etag:(NSString *)etag rev:(NSString *)rev date:(NSDate *)date serverUrl:(NSString *)serverUrl errorCode:(NSInteger)errorCode
 {
     NSString *sessionID = metadata.sessionID;
     
     // Progress Task
-    NSDictionary* userInfo = @{@"fileID": (fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
+    NSDictionary* userInfo = @{@"etag": (etag), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
     [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
     
     // ERRORE
@@ -1354,8 +1354,8 @@
             [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @(errorCode)] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"sessionID = %@ AND account = %@", metadata.sessionID, _activeAccount]];
         }
         
-        if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-            [[self getDelegate:sessionID] uploadFileFailure:nil fileID:fileID serverUrl:serverUrl selector:metadata.sessionSelector message:[CCError manageErrorKCF:errorCode withNumberError:YES] errorCode:errorCode];
+        if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+            [[self getDelegate:sessionID] uploadFileFailure:nil etag:etag serverUrl:serverUrl selector:metadata.sessionSelector message:[CCError manageErrorKCF:errorCode withNumberError:YES] errorCode:errorCode];
         
         return;
     }
@@ -1363,11 +1363,11 @@
     // PLAIN or PLIST
     if ([CCUtility isFileNotCryptated:fileName] || [CCUtility isCryptoPlistString:fileName]) {
         
-        // copy ico in new fileID
-        [CCUtility copyFileAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, sessionID] toPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, fileID]];
+        // copy ico in new etag
+        [CCUtility copyFileAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, sessionID] toPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, etag]];
         
         metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
-        metadata.fileID = fileID;
+        metadata.etag = etag;
         metadata.rev = rev;
         metadata.date = date;
         metadata.sessionTaskIdentifierPlist = k_taskIdentifierDone;
@@ -1376,7 +1376,7 @@
             metadata.sessionTaskIdentifier = k_taskIdentifierDone;
         
         [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:_activeUrl];
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", sessionID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", sessionID]];
     }
     
     // CRYPTO
@@ -1398,7 +1398,7 @@
             [app.listProgressMetadata removeObjectForKey:sessionID];
 #endif
         
-        NSLog(@"[LOG] Insert new upload : %@ - FileNamePrint : %@ - fileID : %@", metadata.fileName, metadata.fileNamePrint, metadata.fileID);
+        NSLog(@"[LOG] Insert new upload : %@ - FileNamePrint : %@ - etag : %@", metadata.fileName, metadata.fileNamePrint, metadata.etag);
         
         metadata.session = @"";
         metadata.sessionError = @"";
@@ -1406,12 +1406,12 @@
         
         [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:_activeUrl];
         
-        // rename file sessionID -> fileID
-        [CCUtility moveFileAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, sessionID]  toPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.fileID]];
+        // rename file sessionID -> etag
+        [CCUtility moveFileAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, sessionID]  toPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.etag]];
         
         // remove temp icon
         [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, sessionID] error:nil];
-        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, metadata.fileID] error:nil];
+        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, metadata.etag] error:nil];
         
         // if crypto remove filename data
         if (metadata.cryptated)
@@ -1423,15 +1423,15 @@
         
         // EXIF
         if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image])
-            [CCExifGeo setExifLocalTableFileID:metadata directoryUser:_directoryUser activeAccount:_activeAccount];
+            [CCExifGeo setExifLocalTableEtag:metadata directoryUser:_directoryUser activeAccount:_activeAccount];
         
         // Create ICON
         if (metadata.directory == NO)
-            [CCGraphics createNewImageFrom:metadata.fileID directoryUser:_directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
+            [CCGraphics createNewImageFrom:metadata.etag directoryUser:_directoryUser fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
         
         // Optimization
         if ([CCUtility getUploadAndRemovePhoto] || [metadata.sessionSelectorPost isEqualToString:selectorUploadRemovePhoto])
-            [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.fileID] error:nil];
+            [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.etag] error:nil];
         
         // Copy photo or video in the photo album for automatic upload
         if ([metadata.assetLocalIdentifier length] > 0 && [metadata.sessionSelector isEqualToString:selectorUploadAutomatic]) {
@@ -1448,8 +1448,8 @@
             }
         }
         
-        if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileSuccess:fileID:serverUrl:selector:selectorPost:)])
-            [[self getDelegate:sessionID] uploadFileSuccess:nil fileID:metadata.fileID serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost];
+        if ([[self getDelegate:sessionID] respondsToSelector:@selector(uploadFileSuccess:etag:serverUrl:selector:selectorPost:)])
+            [[self getDelegate:sessionID] uploadFileSuccess:nil etag:metadata.etag serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost];
     }
 }
 
@@ -1493,23 +1493,23 @@
                 // DATA
                 if (findTask == NO && metadata.sessionTaskIdentifier >= 0) {
                 
-                    NSLog(@"[LOG] NOT Find metadata Task [%li] fileID : %@ - filename : %@", (long)metadata.sessionTaskIdentifier, metadata.fileID, metadata.fileNameData);
+                    NSLog(@"[LOG] NOT Find metadata Task [%li] etag : %@ - filename : %@", (long)metadata.sessionTaskIdentifier, metadata.etag, metadata.fileNameData);
                 
-                    [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @k_CCErrorTaskDownloadNotFound] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"fileID = %@ ", metadata.fileID]];
+                    [[NCManageDatabase sharedInstance] setMetadataSession:nil sessionError:[NSString stringWithFormat:@"%@", @k_CCErrorTaskDownloadNotFound] sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:k_taskIdentifierError sessionTaskIdentifierPlist:k_taskIdentifierNULL predicate:[NSPredicate predicateWithFormat:@"etag = %@ ", metadata.etag]];
                 
-                    if ([self.delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)])
-                    [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account] fileID:metadata.fileID selector:nil];
+                    if ([self.delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)])
+                    [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account] etag:metadata.etag selector:nil];
                 }
             
                 // PLIST
                 if (findTaskPlist == NO && metadata.sessionTaskIdentifierPlist >= 0) {
                 
-                    NSLog(@"[LOG] NOT Find metadata TaskPlist [%li] fileID : %@ - filename : %@", (long)metadata.sessionTaskIdentifierPlist, metadata.fileID, metadata.fileName);
+                    NSLog(@"[LOG] NOT Find metadata TaskPlist [%li] etag : %@ - filename : %@", (long)metadata.sessionTaskIdentifierPlist, metadata.etag, metadata.fileName);
                 
-                    [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
+                    [[NCManageDatabase sharedInstance] setMetadataSession:@"" sessionError:@"" sessionSelector:@"" sessionSelectorPost:@"" sessionTaskIdentifier:k_taskIdentifierNULL sessionTaskIdentifierPlist:k_taskIdentifierDone predicate:[NSPredicate predicateWithFormat:@"etag = %@", metadata.etag]];
                 
-                    if ([self.delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)])
-                    [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account] fileID:metadata.fileID selector:nil];
+                    if ([self.delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)])
+                    [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account] etag:metadata.etag selector:nil];
                 }
             });
         }];
@@ -1531,10 +1531,10 @@
         NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:metadata.directoryID activeAccount:metadata.account];
             
         if (metadata.sessionTaskIdentifier == k_taskIdentifierError)
-            [self downloadFile:metadata.fileID serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:metadata.sessionSelector selectorPost:nil session:k_download_session taskStatus: k_taskStatusResume delegate:nil];
+            [self downloadFile:metadata.etag serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:metadata.sessionSelector selectorPost:nil session:k_download_session taskStatus: k_taskStatusResume delegate:nil];
             
         if (metadata.sessionTaskIdentifierPlist == k_taskIdentifierError)
-            [self downloadFile:metadata.fileID serverUrl:serverUrl downloadData:NO downloadPlist:YES selector:metadata.sessionSelector selectorPost:nil session:k_download_session taskStatus: k_taskStatusResume delegate:nil];
+            [self downloadFile:metadata.etag serverUrl:serverUrl downloadData:NO downloadPlist:YES selector:metadata.sessionSelector selectorPost:nil session:k_download_session taskStatus: k_taskStatusResume delegate:nil];
             
         [serversUrl addObject:serverUrl];
             
@@ -1544,8 +1544,8 @@
     dispatch_async(dispatch_get_main_queue(), ^{
         
         for (NSString *serverUrl in serversUrl)
-            if ([self.delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)])
-                [self.delegate reloadDatasource:serverUrl fileID:nil selector:nil];
+            if ([self.delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)])
+                [self.delegate reloadDatasource:serverUrl etag:nil selector:nil];
     });
 }
 
@@ -1630,8 +1630,8 @@
     dispatch_async(dispatch_get_main_queue(), ^{
         
         for (NSString *directoryID in directoryIDs)
-            if ([self.delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)])
-                [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:directoryID activeAccount:_activeAccount] fileID:nil selector:nil];
+            if ([self.delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)])
+                [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:directoryID activeAccount:_activeAccount] etag:nil selector:nil];
     });
 }
 
@@ -1671,19 +1671,19 @@
     // is completed ?
     if (metadataTemp.sessionTaskIdentifier == k_taskIdentifierDone && metadataTemp.sessionTaskIdentifierPlist == k_taskIdentifierDone) {
         
-        [CCGraphics createNewImageFrom:metadata.fileID directoryUser:_directoryUser fileNameTo:metadata.fileID fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
+        [CCGraphics createNewImageFrom:metadata.etag directoryUser:_directoryUser fileNameTo:metadata.etag fileNamePrint:metadata.fileNamePrint size:@"m" imageForUpload:NO typeFile:metadata.typeFile writePreview:YES optimizedFileName:[CCUtility getOptimizedPhoto]];
         
         NSLog(@"[LOG] Verify read file success, but files already processed");
         
         dispatch_async(dispatch_get_main_queue(), ^{
             
-            if ([self.delegate respondsToSelector:@selector(reloadDatasource:fileID:selector:)])
-                [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:directoryID activeAccount:_activeAccount] fileID:metadataTemp.fileID selector:metadataNet.selector];
+            if ([self.delegate respondsToSelector:@selector(reloadDatasource:etag:selector:)])
+                [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:directoryID activeAccount:_activeAccount] etag:metadataTemp.etag selector:metadataNet.selector];
         });
         
     } else {
         
-        [self uploadFileSuccessFailure:metadataTemp fileName:metadataNet.fileName fileID:metadata.fileID rev:metadata.rev date:metadata.date serverUrl:metadataNet.serverUrl errorCode:0];
+        [self uploadFileSuccessFailure:metadataTemp fileName:metadataNet.fileName etag:metadata.etag rev:metadata.rev date:metadata.date serverUrl:metadataNet.serverUrl errorCode:0];
     }
 }
 
@@ -1713,16 +1713,16 @@
     
     // fix CCNetworking.m line 1340 2.17.2 (00005)
     if (metadata)
-        [self uploadFileSuccessFailure:metadata fileName:metadataNet.fileName fileID:metadata.fileID rev:metadata.rev date:metadata.date serverUrl:metadataNet.serverUrl errorCode:error];
+        [self uploadFileSuccessFailure:metadata fileName:metadataNet.fileName etag:metadata.etag rev:metadata.rev date:metadata.date serverUrl:metadataNet.serverUrl errorCode:error];
 }
 
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark =====  Utility =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (id)getDelegate:(NSString *)fileID
+- (id)getDelegate:(NSString *)etag
 {
-    id delegate = [_delegates objectForKey:fileID];
+    id delegate = [_delegates objectForKey:etag];
     
     if (delegate)
         return delegate;
@@ -1798,7 +1798,7 @@
     [metadataNet setErrorCode: self.errorCode];
     [metadataNet setErrorRetry: self.errorRetry];
     [metadataNet setExpirationTime: self.expirationTime];
-    [metadataNet setFileID: self.fileID];
+    [metadataNet setEtag: self.etag];
     [metadataNet setFileName: self.fileName];
     [metadataNet setFileNameTo: self.fileNameTo];
     [metadataNet setFileNameLocal: self.fileNameLocal];

+ 4 - 4
iOSClient/Networking/OCNetworking.h

@@ -54,15 +54,15 @@
 @optional
 
 - (void)downloadTaskSave:(NSURLSessionDownloadTask *)downloadTask;
-- (void)downloadFileSuccess:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
-- (void)downloadFileFailure:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
+- (void)downloadFileSuccess:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
+- (void)downloadFileFailure:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)downloadThumbnailSuccess:(CCMetadataNet *)metadataNet;
 - (void)downloadThumbnailFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)uploadTaskSave:(NSURLSessionUploadTask *)uploadTask;
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost;
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)readFolderSuccess:(CCMetadataNet *)metadataNet permissions:(NSString *)permissions etag:(NSString *)etag metadatas:(NSArray *)metadatas;
 - (void)readFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;

+ 18 - 18
iOSClient/Networking/OCNetworking.m

@@ -145,7 +145,7 @@
 
 - (void)downloadFile
 {
-    [[CCNetworking sharedNetworking] downloadFile:_metadataNet.fileID serverUrl:_metadataNet.serverUrl downloadData:_metadataNet.downloadData downloadPlist:_metadataNet.downloadPlist selector:_metadataNet.selector selectorPost:_metadataNet.selectorPost session:_metadataNet.session taskStatus:_metadataNet.taskStatus delegate:self];
+    [[CCNetworking sharedNetworking] downloadFile:_metadataNet.etag serverUrl:_metadataNet.serverUrl downloadData:_metadataNet.downloadData downloadPlist:_metadataNet.downloadPlist selector:_metadataNet.selector selectorPost:_metadataNet.selectorPost session:_metadataNet.session taskStatus:_metadataNet.taskStatus delegate:self];
 }
 
 - (void)downloadTaskSave:(NSURLSessionDownloadTask *)downloadTask
@@ -156,20 +156,20 @@
         [self.delegate downloadTaskSave:downloadTask];
 }
 
-- (void)downloadFileSuccess:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)downloadFileSuccess:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self complete];
     
     if ([self.delegate respondsToSelector:@selector(downloadFileSuccess:serverUrl:selector:selectorPost:)])
-        [self.delegate downloadFileSuccess:fileID serverUrl:serverUrl selector:selector selectorPost:selectorPost];
+        [self.delegate downloadFileSuccess:etag serverUrl:serverUrl selector:selector selectorPost:selectorPost];
 }
 
-- (void)downloadFileFailure:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)downloadFileFailure:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     [self complete];
  
     if ([self.delegate respondsToSelector:@selector(downloadFileFailure:serverUrl:selector:message:errorCode:)])
-        [self.delegate downloadFileFailure:fileID serverUrl:serverUrl selector:selector message:message errorCode:errorCode];
+        [self.delegate downloadFileFailure:etag serverUrl:serverUrl selector:selector message:message errorCode:errorCode];
 }
 
 #pragma --------------------------------------------------------------------------------------------
@@ -204,20 +204,20 @@
         [self.delegate uploadTaskSave:uploadTask];
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self complete];
     
-    if ([self.delegate respondsToSelector:@selector(uploadFileSuccess:fileID:serverUrl:selector:selectorPost:)])
-        [self.delegate uploadFileSuccess:_metadataNet fileID:fileID serverUrl:serverUrl selector:selector selectorPost:selectorPost];
+    if ([self.delegate respondsToSelector:@selector(uploadFileSuccess:etag:serverUrl:selector:selectorPost:)])
+        [self.delegate uploadFileSuccess:_metadataNet etag:etag serverUrl:serverUrl selector:selector selectorPost:selectorPost];
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     [self complete];
     
-    if ([self.delegate respondsToSelector:@selector(uploadFileFailure:fileID:serverUrl:selector:message:errorCode:)])
-        [self.delegate uploadFileFailure:_metadataNet fileID:fileID serverUrl:serverUrl selector:selector message:message errorCode:errorCode];
+    if ([self.delegate respondsToSelector:@selector(uploadFileFailure:etag:serverUrl:selector:message:errorCode:)])
+        [self.delegate uploadFileFailure:_metadataNet etag:etag serverUrl:serverUrl selector:selector message:message errorCode:errorCode];
 }
 
 #pragma --------------------------------------------------------------------------------------------
@@ -260,7 +260,7 @@
             UIImage *thumbnailImage = [UIImage imageWithData:thumbnail];
             NSString *directoryUser = [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl];
             
-            [CCGraphics saveIcoWithFileID:_metadataNet.fileNameLocal image:thumbnailImage writeToFile:[NSString stringWithFormat:@"%@/%@.%@", directoryUser, _metadataNet.fileNameLocal, ext] copy:NO move:NO fromPath:nil toPath:nil];
+            [CCGraphics saveIcoWithEtag:_metadataNet.fileNameLocal image:thumbnailImage writeToFile:[NSString stringWithFormat:@"%@/%@.%@", directoryUser, _metadataNet.fileNameLocal, ext] copy:NO move:NO fromPath:nil toPath:nil];
 
             if ([self.delegate respondsToSelector:@selector(downloadThumbnailSuccess:)] && [_metadataNet.action isEqualToString:actionDownloadThumbnail])
                 [self.delegate downloadThumbnailSuccess:_metadataNet];
@@ -414,7 +414,7 @@
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
         
         // Activity
-        [[NCManageDatabase sharedInstance] addActivityClient:_metadataNet.serverUrl fileID:@"" action:k_activityDebugActionReadFolder selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:_metadataNet.serverUrl etag:@"" action:k_activityDebugActionReadFolder selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
         
         [self complete];
     }];
@@ -1360,7 +1360,7 @@
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
         
         // Activity
-        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl fileID:@"" action:k_activityDebugActionGetNotification selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl etag:@"" action:k_activityDebugActionGetNotification selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
         
         [self complete];
     }];
@@ -1430,7 +1430,7 @@
         [communication subscribingPushProxy:[NCBrandOptions sharedInstance].pushNotificationServer pushToken:pushToken deviceIdentifier:deviceIdentifier deviceIdentifierSignature:signature userPublicKey:[CCUtility URLEncodeStringFromString:publicKey] onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
             
             // Activity
-            [[NCManageDatabase sharedInstance] addActivityClient:[NCBrandOptions sharedInstance].pushNotificationServer fileID:@"" action:k_activityDebugActionPushProxy selector:@"" note:@"Service registered." type:k_activityTypeSuccess verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+            [[NCManageDatabase sharedInstance] addActivityClient:[NCBrandOptions sharedInstance].pushNotificationServer etag:@"" action:k_activityDebugActionPushProxy selector:@"" note:@"Service registered." type:k_activityTypeSuccess verbose:k_activityVerboseHigh activeUrl:_activeUrl];
             
             [self complete];
             
@@ -1454,7 +1454,7 @@
                 [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
 
             // Activity
-            [[NCManageDatabase sharedInstance] addActivityClient:[NCBrandOptions sharedInstance].pushNotificationServer fileID:@"" action:k_activityDebugActionPushProxy selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+            [[NCManageDatabase sharedInstance] addActivityClient:[NCBrandOptions sharedInstance].pushNotificationServer etag:@"" action:k_activityDebugActionPushProxy selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
             
             [self complete];
         }];
@@ -1479,7 +1479,7 @@
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
         
         // Activity
-        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl fileID:@"" action:k_activityDebugActionServerPush selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl etag:@"" action:k_activityDebugActionServerPush selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
         
         [self complete];
     }];
@@ -1602,7 +1602,7 @@
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
 
         // Activity
-        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl fileID:@"" action:k_activityDebugActionCapabilities selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl etag:@"" action:k_activityDebugActionCapabilities selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
         
         [self complete];
     }];

+ 4 - 4
iOSClient/PeekPop/CCPeekPop.m

@@ -76,7 +76,7 @@
         
         NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:_metadata.directoryID activeAccount:_metadata.account];
         
-        [[CCNetworking sharedNetworking] downloadFile:_metadata.fileID serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorOpenIn selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:self.delegate];
+        [[CCNetworking sharedNetworking] downloadFile:_metadata.etag serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorOpenIn selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:self.delegate];
     }];
     
     return @[previewAction1];
@@ -88,7 +88,7 @@
 
 - (void)downloadThumbnailSuccess:(CCMetadataNet *)metadataNet
 {
-    UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.pvw",app.directoryUser, _metadata.fileID]];
+    UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.pvw",app.directoryUser, _metadata.etag]];
     
     _imagePreview.image = image;
     
@@ -111,9 +111,9 @@
     NSString *serverUrl = app.activeMain.serverUrl;
     
     metadataNet.action = actionDownloadThumbnail;
-    metadataNet.fileID = metadata.fileID;
+    metadataNet.etag = metadata.etag;
     metadataNet.fileName = [self returnFileNamePathFromFileName:metadata.fileName serverUrl:serverUrl];
-    metadataNet.fileNameLocal = metadata.fileID;
+    metadataNet.fileNameLocal = metadata.etag;
     metadataNet.fileNamePrint = metadata.fileNamePrint;
     metadataNet.options = @"l";
     metadataNet.priority = NSOperationQueuePriorityLow;

+ 28 - 28
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m

@@ -203,11 +203,11 @@
 {
     NSString *addLocation = @"";
     
-    NSArray *fileIDsForKey = [_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:section]];
+    NSArray *etagsForKey = [_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:section]];
     
-    for (NSString *fileID in fileIDsForKey) {
+    for (NSString *etag in etagsForKey) {
     
-        TableLocalFile *localFile = [CCCoreData getLocalFileWithFileID:fileID activeAccount:app.activeAccount];
+        TableLocalFile *localFile = [CCCoreData getLocalFileWithEtag:etag activeAccount:app.activeAccount];
     
         if ([localFile.exifLatitude floatValue] > 0 || [localFile.exifLongitude floatValue] > 0) {
         
@@ -314,7 +314,7 @@
     
         NSString *fileNamePath = [NSTemporaryDirectory() stringByAppendingString:metadata.fileNamePrint];
         
-        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID] toPath:fileNamePath error:nil];
+        [[NSFileManager defaultManager] linkItemAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.etag] toPath:fileNamePath error:nil];
         
         if ([[NSFileManager defaultManager] fileExistsAtPath:fileNamePath]) {
             
@@ -380,9 +380,9 @@
     NSIndexPath *indexPath;
     BOOL existsIcon = NO;
     
-    if (metadata.fileID) {
-        existsIcon = [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
-        indexPath = [_sectionDataSource.fileIDIndexPath objectForKey:metadata.fileID];
+    if (metadata.etag) {
+        existsIcon = [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
+        indexPath = [_sectionDataSource.etagIndexPath objectForKey:metadata.etag];
     }
     
     if (indexPath && existsIcon) {
@@ -394,11 +394,11 @@
             UIVisualEffectView *effect = [cell viewWithTag:200];
             UIImageView *checked = [cell viewWithTag:300];
             
-            imageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
+            imageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
             effect.hidden = YES;
             checked.hidden = YES;
             
-            [app.icoImagesCache setObject:imageView.image forKey:metadata.fileID];
+            [app.icoImagesCache setObject:imageView.image forKey:metadata.etag];
         }
     }
 }
@@ -492,9 +492,9 @@
 
 - (void)downloadThumbnailSuccess:(CCMetadataNet *)metadataNet
 {
-    NSIndexPath *indexPath = [_sectionDataSource.fileIDIndexPath objectForKey:metadataNet.fileID];
+    NSIndexPath *indexPath = [_sectionDataSource.etagIndexPath objectForKey:metadataNet.etag];
     
-    if (indexPath && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadataNet.fileID]])
+    if (indexPath && [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadataNet.etag]])
         [self.collectionView reloadItemsAtIndexPaths:@[indexPath]];
 }
 
@@ -626,20 +626,20 @@
     checked.image = [UIImage imageNamed:@"checked"];
 
     NSArray *metadatasForKey = [_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]];
-    NSString *fileID = [metadatasForKey objectAtIndex:indexPath.row];
-    tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+    NSString *etag = [metadatasForKey objectAtIndex:indexPath.row];
+    tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
     
     // Image
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]]) {
+    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]]) {
         
-        imageView.image = [app.icoImagesCache objectForKey:metadata.fileID];
+        imageView.image = [app.icoImagesCache objectForKey:metadata.etag];
         
         if (imageView.image == nil) {
             
                 // insert Image
-                UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
+                UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
                 imageView.image = image;
-                [app.icoImagesCache setObject:image forKey:metadata.fileID];
+                [app.icoImagesCache setObject:image forKey:metadata.etag];
         }
         
     } else {
@@ -667,8 +667,8 @@
 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
 {
     NSArray *metadatasForKey = [_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]];
-    NSString *fileID = [metadatasForKey objectAtIndex:indexPath.row];
-    _metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+    NSString *etag = [metadatasForKey objectAtIndex:indexPath.row];
+    _metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
     
     //UICollectionViewCell *cell =[collectionView cellForItemAtIndexPath:indexPath];
     
@@ -691,8 +691,8 @@
     //UICollectionViewCell *cell =[collectionView cellForItemAtIndexPath:indexPath];
     
     NSArray *metadatasForKey = [_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]];
-    NSString *fileID = [metadatasForKey objectAtIndex:indexPath.row];
-    _metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+    NSString *etag = [metadatasForKey objectAtIndex:indexPath.row];
+    _metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
     
     [self cellSelect:NO indexPath:indexPath metadata:_metadata];
 }
@@ -738,8 +738,8 @@
     }
     
     NSMutableArray *allRecordsDataSourceImagesVideos = [[NSMutableArray alloc] init];
-    for (NSString *fileID in _sectionDataSource.allFileID) {
-        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+    for (NSString *etag in _sectionDataSource.allEtag) {
+        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
         if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image] || [metadata.typeFile isEqualToString: k_metadataTypeFile_video])
             [allRecordsDataSourceImagesVideos addObject:metadata];
     }
@@ -1252,7 +1252,7 @@
                             
                         } else if (AVAssetExportSessionStatusFailed == exportSession.status) {
                                                         
-                            [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"%@ [%@]",NSLocalizedString(@"_read_file_error_", nil), error.description] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:appDelegate.activeUrl];
+                            [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName etag:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"%@ [%@]",NSLocalizedString(@"_read_file_error_", nil), error.description] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:appDelegate.activeUrl];
                             
                         } else {
                             NSLog(@"Export Session Status: %ld", (long)exportSession.status);
@@ -1261,7 +1261,7 @@
                     
                 } else {
                     
-                    [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"%@ [%@]",NSLocalizedString(@"_read_file_error_", nil), error.description] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:appDelegate.activeUrl];
+                    [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName etag:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"%@ [%@]",NSLocalizedString(@"_read_file_error_", nil), error.description] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:appDelegate.activeUrl];
                 }
             }];
         }
@@ -1283,7 +1283,7 @@
                     
                     NSString *note = [NSString stringWithFormat:@"%@ [%@]",NSLocalizedString(@"_read_file_error_", nil), error.description];
 
-                    [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:metadataNet.selector note:note type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:app.activeUrl];
+                    [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName etag:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:metadataNet.selector note:note type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:app.activeUrl];
                     
                     [[NCManageDatabase sharedInstance] deleteAutomaticUpload:metadataNet.assetLocalIdentifier];
                     
@@ -1300,11 +1300,11 @@
 {    
     if ([[NCManageDatabase sharedInstance] addAutomaticUpload:metadataNet]) {
         
-        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutomaticUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Automatic Upload, Asset Data: %@", [NSDateFormatter localizedStringFromDate:assetDate dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle]] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName etag:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutomaticUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Automatic Upload, Asset Data: %@", [NSDateFormatter localizedStringFromDate:assetDate dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle]] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
        
     } else {
         
-        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutomaticUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Automatic Upload [File already present in Table automatic Upload], Asset Data: %@", [NSDateFormatter localizedStringFromDate:assetDate dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle]] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName etag:metadataNet.assetLocalIdentifier action:k_activityDebugActionAutomaticUpload selector:metadataNet.selector note:[NSString stringWithFormat:@"Add Automatic Upload [File already present in Table automatic Upload], Asset Data: %@", [NSDateFormatter localizedStringFromDate:assetDate dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle]] type:k_activityTypeInfo verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
     }
     
     dispatch_async(dispatch_get_main_queue(), ^{

+ 1 - 1
iOSClient/Share/CCShareOC.h

@@ -63,7 +63,7 @@
 - (void)unShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl;
 - (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission;
 
-- (void)reloadDatasource:(NSString *)serverUrl fileID:(NSString *)fileID selector:(NSString *)selector;
+- (void)reloadDatasource:(NSString *)serverUrl etag:(NSString *)etag selector:(NSString *)selector;
 - (void)getUserAndGroup:(NSString *)find;
 - (void)shareUserAndGroup:(NSString *)user shareeType:(NSInteger)shareeType permission:(NSInteger)permission metadata:(tableMetadata *)metadata directoryID:(NSString *)directoryID serverUrl:(NSString *)serverUrl;
 

+ 3 - 3
iOSClient/Share/CCShareOC.m

@@ -120,9 +120,9 @@
     
     [self reloadData];
     
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, self.metadata.fileID]]) {
+    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, self.metadata.etag]]) {
         
-        self.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, self.metadata.fileID]];
+        self.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, self.metadata.etag]];
         
     } else {
         
@@ -446,7 +446,7 @@
     [self.tableView endEditing:YES];
     
     // reload delegate
-    [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:self.metadata.directoryID activeAccount:self.metadata.account] fileID:nil selector:nil];
+    [self.delegate reloadDatasource:[CCCoreData getServerUrlFromDirectoryID:self.metadata.directoryID activeAccount:self.metadata.account] etag:nil selector:nil];
     
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCAccountWeb.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCAccountWebDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCAccountWebDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCAccountWebDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCAccountWeb.m

@@ -31,13 +31,13 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 }
 @end
 
 @implementation CCAccountWeb
 
-- (id)initWithDelegate:(id <CCAccountWebDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCAccountWebDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -46,7 +46,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -187,22 +187,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
     
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
     
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCBancomat.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCBancomatDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCBancomatDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCBancomatDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCBancomat.m

@@ -31,14 +31,14 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 
 }
 @end
 
 @implementation CCBancomat
 
-- (id)initWithDelegate:(id <CCBancomatDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCBancomatDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -47,7 +47,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -194,22 +194,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCCartaDiCredito.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCCartaDiCreditoDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCCartaDiCreditoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCCartaDiCreditoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCCartaDiCredito.m

@@ -31,14 +31,14 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 
 }
 @end
 
 @implementation CCCartaDiCredito
 
-- (id)initWithDelegate:(id <CCCartaDiCreditoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCCartaDiCreditoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -47,7 +47,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -212,22 +212,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCCartaIdentita.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCCartaIdentitaDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCCartaIdentitaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCCartaIdentitaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCCartaIdentita.m

@@ -31,13 +31,13 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 }
 @end
 
 @implementation CCCartaIdentita
 
-- (id)initWithDelegate:(id <CCCartaIdentitaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCCartaIdentitaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -46,7 +46,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -210,22 +210,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCContoCorrente.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCContoCorrenteDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCContoCorrenteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCContoCorrenteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCContoCorrente.m

@@ -31,13 +31,13 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 }
 @end
 
 @implementation CCContoCorrente
 
-- (id)initWithDelegate:(id <CCContoCorrenteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCContoCorrenteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -46,7 +46,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -210,22 +210,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCNote.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCNoteDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCNoteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCNoteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *titolo;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;

+ 8 - 8
iOSClient/Templates/CCNote.m

@@ -31,13 +31,13 @@
     CCTemplates *templates;
     
     NSString *initHtml;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 }
 @end
 
 @implementation CCNote
 
-- (id)initWithDelegate:(id <CCNoteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCNoteDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -46,7 +46,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -156,22 +156,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCPassaporto.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCPassaportoDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCPassaportoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCPassaportoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCPassaporto.m

@@ -31,13 +31,13 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 }
 @end
 
 @implementation CCPassaporto
 
-- (id)initWithDelegate:(id <CCPassaportoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCPassaportoDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -46,7 +46,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -210,22 +210,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 2 - 2
iOSClient/Templates/CCPatenteGuida.h

@@ -36,12 +36,12 @@
 
 @property(nonatomic, weak) id <CCPatenteGuidaDelegate> delegate;
 
-- (id)initWithDelegate:(id <CCPatenteGuidaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
+- (id)initWithDelegate:(id <CCPatenteGuidaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl;
 
 @property (nonatomic, strong) NSString *fileName;
 @property (nonatomic, strong) NSString *uuid;
 @property (nonatomic, strong) NSString *rev;
-@property (nonatomic, strong) NSString *fileID;
+@property (nonatomic, strong) NSString *etag;
 @property (nonatomic, strong) NSString *serverUrl;
 @property BOOL isLocal;
 

+ 8 - 8
iOSClient/Templates/CCPatenteGuida.m

@@ -33,13 +33,13 @@
     NSTimer* myTimer;
     NSMutableDictionary *field;
     CCTemplates *templates;
-    NSString *_saveFileID;
+    NSString *_saveEtag;
 }
 @end
 
 @implementation CCPatenteGuida
 
-- (id)initWithDelegate:(id <CCPatenteGuidaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid fileID:(NSString *)fileID isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
+- (id)initWithDelegate:(id <CCPatenteGuidaDelegate>)delegate fileName:(NSString *)fileName uuid:(NSString *)uuid etag:(NSString *)etag isLocal:(BOOL)isLocal serverUrl:(NSString *)serverUrl
 {
     self = [super init];
     
@@ -48,7 +48,7 @@
         self.delegate = delegate;
         self.fileName = fileName;
         self.isLocal = isLocal;
-        self.fileID = fileID;
+        self.etag = etag;
         self.uuid = uuid;
         self.serverUrl = serverUrl;
         
@@ -204,22 +204,22 @@
     }
 }
 
-- (void)uploadFileFailure:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)uploadFileFailure:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    if (![_saveFileID isEqualToString:fileID]) {
+    if (![_saveEtag isEqualToString:etag]) {
         
-        _saveFileID = fileID;
+        _saveEtag = etag;
         
         [app messageNotification:@"_upload_file_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         // remove the file
-        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"etag = %@", etag]];
         
         [self.delegate readFolderWithForced:YES serverUrl:self.serverUrl];
     }
 }
 
-- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
+- (void)uploadFileSuccess:(CCMetadataNet *)metadataNet etag:(NSString *)etag serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost
 {
     [self dismissViewControllerAnimated:YES completion:nil];
 }

+ 17 - 17
iOSClient/Transfers/CCTransfers.m

@@ -146,17 +146,17 @@
 - (void)triggerProgressTask:(NSNotification *)notification
 {
     NSDictionary *dict = notification.userInfo;
-    NSString *fileID = [dict valueForKey:@"fileID"];
+    NSString *etag = [dict valueForKey:@"etag"];
     BOOL cryptated = [[dict valueForKey:@"cryptated"] boolValue];
     float progress = [[dict valueForKey:@"progress"] floatValue];
     
     // Check
-    if (!fileID)
+    if (!etag)
         return;
     
-    [app.listProgressMetadata setObject:[NSNumber numberWithFloat:progress] forKey:fileID];
+    [app.listProgressMetadata setObject:[NSNumber numberWithFloat:progress] forKey:etag];
     
-    NSIndexPath *indexPath = [_sectionDataSource.fileIDIndexPath objectForKey:fileID];
+    NSIndexPath *indexPath = [_sectionDataSource.etagIndexPath objectForKey:etag];
     
     if (indexPath && indexPath.row == 0) {
         
@@ -185,8 +185,8 @@
     
     if (indexPath) {
         
-        NSString *fileID = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
-        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+        NSString *etag = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
+        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
         
         if (metadata)
             [app.activeMain reloadTaskButton:metadata];
@@ -223,8 +223,8 @@
     
     if (indexPath) {
         
-        NSString *fileID = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
-        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+        NSString *etag = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
+        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
         
         if (metadata)
             [app.activeMain cancelTaskButton:metadata reloadTable:YES];
@@ -263,8 +263,8 @@
     
     if (indexPath) {
         
-        NSString *fileID = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
-        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+        NSString *etag = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
+        tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
         
         if (metadata)
             [app.activeMain stopTaskButton:metadata];
@@ -527,8 +527,8 @@
     NSString *dataFile;
     NSString *lunghezzaFile;
     
-    NSString *fileID = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
-    tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
+    NSString *etag = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
+    tableMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:etag];
     
     CCTransfersCell *cell = (CCTransfersCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
     cell.backgroundColor = [UIColor clearColor];
@@ -603,9 +603,9 @@
     // ----------------------------------------------------------------------------------------------------------
     
     // assegnamo l'immagine anteprima se esiste, altrimenti metti quella standars
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]]) {
+    if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]]) {
         
-        cell.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
+        cell.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]];
         
     } else {
         
@@ -647,7 +647,7 @@
         
         cell.labelInfoFile.text = [NSString stringWithFormat:@"%@", lunghezzaFile];
         
-        float progress = [[app.listProgressMetadata objectForKey:metadata.fileID] floatValue];
+        float progress = [[app.listProgressMetadata objectForKey:metadata.etag] floatValue];
         if (progress > 0) {
             
             if (metadata.cryptated) cell.progressView.progressTintColor = [NCBrandColor sharedInstance].cryptocloud;
@@ -706,13 +706,13 @@
         }
         
         // se non c'è una preview in bianconero metti l'immagine di default
-        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]] == NO)
+        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.etag]] == NO)
             cell.fileImageView.image = [UIImage imageNamed:@"uploaddisable"];
         
         cell.labelTitle.enabled = NO;
         cell.labelInfoFile.text = [NSString stringWithFormat:@"%@", lunghezzaFile];
         
-        float progress = [[app.listProgressMetadata objectForKey:metadata.fileID] floatValue];
+        float progress = [[app.listProgressMetadata objectForKey:metadata.etag] floatValue];
         if (progress > 0) {
             
             if (metadata.cryptated) cell.progressView.progressTintColor = [NCBrandColor sharedInstance].cryptocloud;

+ 2 - 2
iOSClient/Utility/CCExifGeo.h

@@ -31,8 +31,8 @@
 
 @interface CCExifGeo : NSObject
 
-+ (void)setExifLocalTableFileID:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount;
++ (void)setExifLocalTableEtag:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount;
 
-+ (void)setGeocoderFileID:(NSString *)fileID exifDate:(NSDate *)exifDate latitude:(NSString*)latitude longitude:(NSString*)longitude;
++ (void)setGeocoderEtag:(NSString *)etag exifDate:(NSDate *)exifDate latitude:(NSString*)latitude longitude:(NSString*)longitude;
 
 @end

+ 5 - 5
iOSClient/Utility/CCExifGeo.m

@@ -26,12 +26,12 @@
 
 @implementation CCExifGeo
 
-+ (void)setExifLocalTableFileID:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount
++ (void)setExifLocalTableEtag:(tableMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount
 {
     NSString *stringLatitude;
     NSString *stringLongitude;
     
-    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", directoryUser, metadata.fileID]];
+    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", directoryUser, metadata.etag]];
     
     CGImageSourceRef originalSource =  CGImageSourceCreateWithURL((CFURLRef) url, NULL);
     
@@ -77,10 +77,10 @@
     }
     
     // Wite data EXIF in TableLocalFile
-    [CCCoreData setGeoInformationLocalFromFileID:metadata.fileID exifDate:date exifLatitude:stringLatitude exifLongitude:stringLongitude activeAccount:activeAccount];
+    [CCCoreData setGeoInformationLocalFromEtag:metadata.etag exifDate:date exifLatitude:stringLatitude exifLongitude:stringLongitude activeAccount:activeAccount];
 }
 
-+ (void)setGeocoderFileID:(NSString *)fileID exifDate:(NSDate *)exifDate latitude:(NSString*)latitude longitude:(NSString*)longitude
++ (void)setGeocoderEtag:(NSString *)etag exifDate:(NSDate *)exifDate latitude:(NSString*)latitude longitude:(NSString*)longitude
 {
     // If exists already geocoder data in TableGPS exit
     if ([[NCManageDatabase sharedInstance] getLocationFromGeoLatitude:latitude longitude:longitude])
@@ -117,7 +117,7 @@
                 
                 [[NCManageDatabase sharedInstance] addGeocoderLocation:location placemarkAdministrativeArea:placemark.administrativeArea placemarkCountry:placemark.country placemarkLocality:placemark.locality placemarkPostalCode:placemark.postalCode placemarkThoroughfare:placemark.thoroughfare latitude:latitude longitude:longitude];
                 
-                NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:exifDate, fileID, nil];
+                NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:exifDate, etag, nil];
                 
                 // Notify for CCDetail
                 [[NSNotificationCenter defaultCenter] postNotificationName:@"insertGeocoderLocation" object:nil userInfo:dictionary];

+ 1 - 1
iOSClient/Utility/CCGraphics.h

@@ -35,7 +35,7 @@
 
 + (UIImage *)createNewImageFrom:(NSString *)fileName directoryUser:(NSString *)directoryUser fileNameTo:(NSString *)fileNameTo fileNamePrint:(NSString *)fileNamePrint size:(NSString *)size imageForUpload:(BOOL)imageForUpload typeFile:(NSString *)typeFile writePreview:(BOOL)writePreview optimizedFileName:(BOOL)optimizedFileName;
 
-+ (void)saveIcoWithFileID:(NSString *)fileID image:(UIImage *)image writeToFile:(NSString *)writeToFile copy:(BOOL)copy move:(BOOL)move fromPath:(NSString *)fromPath toPath:(NSString *)toPath;
++ (void)saveIcoWithEtag:(NSString *)etag image:(UIImage *)image writeToFile:(NSString *)writeToFile copy:(BOOL)copy move:(BOOL)move fromPath:(NSString *)fromPath toPath:(NSString *)toPath;
 
 + (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)targetSize;
 + (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)targetSize isAspectRation:(BOOL)aspect;

+ 6 - 6
iOSClient/Utility/CCGraphics.m

@@ -188,16 +188,16 @@
         if (imageForUpload) {
             
             // write image preview in tmp for plist
-            [self saveIcoWithFileID:fileNameTo image:scaleImage writeToFile:[NSTemporaryDirectory() stringByAppendingString:fileNameTo] copy:NO move:NO fromPath:nil toPath:nil];
+            [self saveIcoWithEtag:fileNameTo image:scaleImage writeToFile:[NSTemporaryDirectory() stringByAppendingString:fileNameTo] copy:NO move:NO fromPath:nil toPath:nil];
             
             // if it is preview for Upload then trasform it in gray scale
             //TODO: Crash with swift
             scaleImage = [scaleImage grayscale];
-            [self saveIcoWithFileID:fileNameTo image:scaleImage writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, fileNameTo] copy:NO move:NO fromPath:nil toPath:nil];
+            [self saveIcoWithEtag:fileNameTo image:scaleImage writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, fileNameTo] copy:NO move:NO fromPath:nil toPath:nil];
             
         } else {
             
-            [self saveIcoWithFileID:fileNameTo image:scaleImage writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, fileNameTo] copy:NO move:NO fromPath:nil toPath:nil];
+            [self saveIcoWithEtag:fileNameTo image:scaleImage writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, fileNameTo] copy:NO move:NO fromPath:nil toPath:nil];
         }
     }
     
@@ -247,7 +247,7 @@
     return scaleImage;
 }
 
-+ (void)saveIcoWithFileID:(NSString *)fileID image:(UIImage *)image writeToFile:(NSString *)writeToFile copy:(BOOL)copy move:(BOOL)move fromPath:(NSString *)fromPath toPath:(NSString *)toPath
++ (void)saveIcoWithEtag:(NSString *)etag image:(UIImage *)image writeToFile:(NSString *)writeToFile copy:(BOOL)copy move:(BOOL)move fromPath:(NSString *)fromPath toPath:(NSString *)toPath
 {
     if (writeToFile)
         [UIImagePNGRepresentation(image) writeToFile:writeToFile atomically: YES];
@@ -259,8 +259,8 @@
         [[NSFileManager defaultManager] moveItemAtPath:fromPath toPath:toPath error:nil];
 
 #ifndef EXTENSION
-    if (image && fileID)
-        [app.icoImagesCache setObject:image forKey:fileID];
+    if (image && etag)
+        [app.icoImagesCache setObject:image forKey:etag];
 #endif
 }
 

+ 5 - 5
iOSClient/Utility/CCUtility.m

@@ -786,7 +786,7 @@
     metadata.directory = itemDto.isDirectory;
     metadata.errorPasscode = false;
     metadata.favorite = itemDto.isFavorite;
-    metadata.fileID = itemDto.ocId;
+    metadata.etag = itemDto.ocId;
     metadata.directoryID = directoryID;
     metadata.fileName = [CCUtility removeForbiddenCharactersServer:itemDto.fileName];
     metadata.fileNameData = [CCUtility trasformedFileNamePlistInCrypto:metadata.fileName];
@@ -979,7 +979,7 @@
     metadata.uuid = uuid;
     
     // Optimization V2.12
-    if (![[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.fileID]] && !metadata.directory) {
+    if (![[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.etag]] && !metadata.directory) {
     
         // exists image V1.8
         NSData *imageData = [data objectForKey:@"image"];
@@ -994,9 +994,9 @@
                 if (image) {
                 
                     if (image.size.width == 128 && image.size.height == 128)
-                        [CCGraphics saveIcoWithFileID:metadata.fileID image:image writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.fileID] copy:NO move:NO fromPath:nil toPath:nil];
+                        [CCGraphics saveIcoWithEtag:metadata.etag image:image writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.etag] copy:NO move:NO fromPath:nil toPath:nil];
                     else
-                        [CCGraphics saveIcoWithFileID:metadata.fileID image:[CCGraphics scaleImage:image toSize:CGSizeMake(128, 128)] writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.fileID] copy:NO move:NO fromPath:nil toPath:nil];
+                        [CCGraphics saveIcoWithEtag:metadata.etag image:[CCGraphics scaleImage:image toSize:CGSizeMake(128, 128)] writeToFile:[NSString stringWithFormat:@"%@/%@.ico", directoryUser, metadata.etag] copy:NO move:NO fromPath:nil toPath:nil];
                 }
             }
         }
@@ -1041,7 +1041,7 @@
     metadata.directory = isDirectory;
     
     metadata.errorPasscode = false;
-    metadata.fileID = fileName;
+    metadata.etag = fileName;
     metadata.directoryID = directory;
     metadata.fileName = fileName;
     metadata.fileNameData = fileName;

+ 2 - 2
iOSClient/cryptocloud.xcdatamodeld/cryptocloud 10.xcdatamodel/contents

@@ -40,8 +40,8 @@
         <attribute name="account" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="dateReadDirectory" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="directoryID" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="etag" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="favorite" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
-        <attribute name="fileID" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="lock" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="offline" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="permissions" optional="YES" attributeType="String" syncable="YES"/>
@@ -52,11 +52,11 @@
     <entity name="TableLocalFile" representedClassName="TableLocalFile" syncable="YES">
         <attribute name="account" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
+        <attribute name="etag" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="exifDate" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="exifLatitude" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="exifLongitude" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="favorite" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
-        <attribute name="fileID" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="fileName" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="fileNamePrint" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="offline" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است