Browse Source

Procedure FileName with mask

Marino Faggiana 8 years ago
parent
commit
20bdfa6d00

+ 34 - 13
iOSClient/Create/CCCreateCloud.swift

@@ -317,32 +317,53 @@ class CreateFormUpload: XLFormViewController, CCMoveDelegate {
         }
         else if formRow.tag == "maskFileName" {
             
-            
+            if formRow.value != nil {
+                
+                var value : String = formRow.value as! String
+                value = value.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
+                
+                if value.characters.count > 0 {
+                    
+                    self.form.delegate = nil
+                    formRow.value = value
+                    CCUtility.setFileNameMask(formRow.value as! String)
+                    self.tableView.reloadData()
+                    self.form.delegate = self
+                }
+            }
         }
     }
     
     override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
         
-        var returnTitle : String?
+        switch section {
         
-        if section == 0 {
+        case 0:
             let buttonDestinationFolder : XLFormRowDescriptor  = self.form.formRow(withTag: "ButtonDestinationFolder")!
+            
             if buttonDestinationFolder.isHidden() {
-                returnTitle = ""
+                return ""
             } else {
-                returnTitle = NSLocalizedString("_destination_folder_", comment: "")
+                return NSLocalizedString("_destination_folder_", comment: "")
             }
+        case 1:
+            return NSLocalizedString("_use_folder_photos_", comment: "")
+        case 2:
+            return NSLocalizedString("_rename_filename_", comment: "")
+        default:
+            return ""
         }
+    }
+    
+    override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
         
-        if section == 1 {
-            returnTitle = NSLocalizedString("_use_folder_photos_", comment: "")
-        }
-        
-        if section == 2 {
-            returnTitle = NSLocalizedString("_rename_filename_", comment: "")
+        switch section {
+            
+        case 2:
+            return NSLocalizedString("_rename_filename_", comment: "")
+        default:
+            return ""
         }
-        
-        return returnTitle
     }
 
     func reloadForm() {

+ 2 - 2
iOSClient/Main/CCMain.m

@@ -1470,9 +1470,9 @@
         // Create file name for upload
         if (cryptated) {
             CCCrypto *crypto = [[CCCrypto alloc] init];
-            fileNameUpload = [NSString stringWithFormat:@"%@.plist", [crypto createFilenameEncryptor:[CCUtility createFileNameFromAsset:asset] uuid:[CCUtility getUUID]]];
+            fileNameUpload = [NSString stringWithFormat:@"%@.plist", [crypto createFilenameEncryptor:[CCUtility createFileNameFromAsset:asset withMask:true] uuid:[CCUtility getUUID]]];
         } else {
-            fileNameUpload = [CCUtility createFileNameFromAsset:asset];
+            fileNameUpload = [CCUtility createFileNameFromAsset:asset withMask:true];
         }
 
         // Create serverUrl if use sub folder

+ 1 - 1
iOSClient/Networking/CCNetworking.h

@@ -61,7 +61,7 @@
 - (void)downloadFile:(CCMetadata *)metadata 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 *)localIdentifier serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost parentRev:(NSString *)parentRev errorCode:(NSInteger)errorCode delegate:(id)delegate;
+- (void)uploadFileFromAssetLocalIdentifier:(NSString *)localIdentifier fileName:(NSString *)fileName serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost parentRev:(NSString *)parentRev errorCode:(NSInteger)errorCode delegate:(id)delegate;
 - (void)uploadFile:(NSString *)fileName serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated onlyPlist:(BOOL)onlyPlist session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost parentRev:(NSString *)parentRev errorCode:(NSInteger)errorCode delegate:(id)delegate;
 - (void)uploadTemplate:(NSString *)fileNamePrint fileNameCrypto:(NSString *)fileNameCrypto serverUrl:(NSString *)serverUrl session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost parentRev:(NSString *)parentRev errorCode:(NSInteger)errorCode delegate:(id)delegate;
 - (void)uploadFileMetadata:(CCMetadata *)metadata taskStatus:(NSInteger)taskStatus;

+ 2 - 2
iOSClient/Networking/CCNetworking.m

@@ -727,7 +727,7 @@
 #pragma mark =====  Upload =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)uploadFileFromAssetLocalIdentifier:(NSString *)localIdentifier serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost parentRev:(NSString *)parentRev errorCode:(NSInteger)errorCode delegate:(id)delegate
+- (void)uploadFileFromAssetLocalIdentifier:(NSString *)localIdentifier fileName:(NSString *)fileNameXX serverUrl:(NSString *)serverUrl cryptated:(BOOL)cryptated session:(NSString *)session taskStatus:(NSInteger)taskStatus selector:(NSString *)selector selectorPost:(NSString *)selectorPost parentRev:(NSString *)parentRev errorCode:(NSInteger)errorCode delegate:(id)delegate
 {
     PHFetchResult *result = [PHAsset fetchAssetsWithLocalIdentifiers:@[localIdentifier] options:nil];
     
@@ -745,7 +745,7 @@
     
     // create fileName
     NSString *assetFileName = [asset valueForKey:@"filename"];
-    NSString *fileNameUpload = [CCUtility createFileNameFromAsset:asset];
+    NSString *fileNameUpload = [CCUtility createFileNameFromAsset:asset withMask:false];
     NSString *fileNamePath = [NSString stringWithFormat:@"%@/%@", _directoryUser, fileNameUpload];
     
     //delegate

+ 1 - 1
iOSClient/Networking/OCNetworking.m

@@ -201,7 +201,7 @@
 
 - (void)uploadAsset
 {
-    [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:_metadataNet.assetLocalItentifier serverUrl:_metadataNet.serverUrl cryptated:_metadataNet.cryptated session:_metadataNet.session taskStatus:_metadataNet.taskStatus selector:_metadataNet.selector selectorPost:_metadataNet.selectorPost parentRev:nil errorCode:_metadataNet.errorCode delegate:self];
+    [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:_metadataNet.assetLocalItentifier fileName:_metadataNet.fileName serverUrl:_metadataNet.serverUrl cryptated:_metadataNet.cryptated session:_metadataNet.session taskStatus:_metadataNet.taskStatus selector:_metadataNet.selector selectorPost:_metadataNet.selectorPost parentRev:nil errorCode:_metadataNet.errorCode delegate:self];
 }
 
 - (void)uploadTemplate

+ 4 - 20
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m

@@ -1161,35 +1161,19 @@
     NSString *folderPhotos = [CCCoreData getCameraUploadFolderNamePathActiveAccount:app.activeAccount activeUrl:app.activeUrl typeCloud:app.typeCloud];
     BOOL createSubfolders = [CCCoreData getCameraUploadCreateSubfolderActiveAccount:app.activeAccount];
     
-    /*
+    // Conversion from ALAsset -to-> PHAsset
     for (ALAsset *asset in newItemsToUpload) {
         
         NSURL *url = [asset valueForProperty:@"ALAssetPropertyAssetURL"];
         PHFetchResult *fetchResult = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];
         PHAsset *asset = [fetchResult firstObject];
         [newItemsPHAssetToUpload addObject:asset];
-        
-        if (createSubfolders) {
-
-            NSDate *assetDate = asset.creationDate;
-            
-            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-            [formatter setDateFormat:@"yyyy"];
-            NSString *yearString = [formatter stringFromDate:assetDate];
-            [datesSubFolder addObject:yearString];
-        
-            [formatter setDateFormat:@"MM"];
-            NSString *monthString = [formatter stringFromDate:assetDate];
-            monthString = [NSString stringWithFormat:@"%@/%@", yearString, monthString];
-            [datesSubFolder addObject:monthString];
-        }
     }
-    */
-    
+        
     // Use subfolders
     if (createSubfolders) {
         
-        for (NSString *dateSubFolder in [CCUtility createNameSubFolder:newItemsToUpload]) {
+        for (NSString *dateSubFolder in [CCUtility createNameSubFolder:newItemsPHAssetToUpload]) {
             
             if (![self createFolder:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder]]) {
                 
@@ -1209,7 +1193,7 @@
         NSDate *assetDate = asset.creationDate;
         PHAssetMediaType assetMediaType = asset.mediaType;
         NSString *session;
-        NSString *fileNameUpload = [CCUtility createFileNameFromAsset:asset];
+        NSString *fileNameUpload = [CCUtility createFileNameFromAsset:asset withMask:false];
         
         // Select type of session
         

+ 1 - 1
iOSClient/Utility/CCUtility.h

@@ -134,7 +134,7 @@
 + (NSString *)stringAppendServerUrl:(NSString *)serverUrl addServerUrl:(NSString *)addServerUrl;
 
 + (NSString *)createID;
-+ (NSString *)createFileNameFromAsset:(PHAsset *)asset;
++ (NSString *)createFileNameFromAsset:(PHAsset *)asset withMask:(BOOL)withMask;
 
 + (NSString *)getHomeServerUrlActiveUrl:(NSString *)activeUrl typeCloud:(NSString *)typeCloud;
 + (NSString *)getDirectoryActiveUser:(NSString *)activeUser activeUrl:(NSString *)activeUrl;

+ 5 - 21
iOSClient/Utility/CCUtility.m

@@ -477,7 +477,7 @@
     return [NSString stringWithFormat:@"%@", randomString];
 }
 
-+ (NSString *)createFileNameFromAsset:(PHAsset *)asset
++ (NSString *)createFileNameFromAsset:(PHAsset *)asset withMask:(BOOL)withMask
 {
     NSDate *assetDate = asset.creationDate;
     
@@ -716,35 +716,19 @@
     return translate;
 }
 
-+ (NSArray *)createNameSubFolder:(NSArray *)assets
++ (NSArray *)createNameSubFolder:(NSArray *)alassets
 {
     NSMutableOrderedSet *datesSubFolder = [[NSMutableOrderedSet alloc] init];
     
-    for (id asset in assets) {
+    for (PHAsset *asset in alassets) {
         
-        NSDate *assetDate;
-        
-        if ([asset isKindOfClass:[PHAsset class]]) {
-            
-            PHAsset *phAsset = (PHAsset *)asset;
-            assetDate = phAsset.creationDate;
-        }
-        
-        if ([asset isKindOfClass:[ALAsset class]]) {
-            
-            ALAsset *alAsset = (ALAsset *)asset;
-            NSURL *url = [alAsset valueForProperty:@"ALAssetPropertyAssetURL"];
-            PHFetchResult *fetchResult = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];
-            PHAsset *phAsset = [fetchResult firstObject];
-            
-            assetDate = phAsset.creationDate;
-        }
+        NSDate *assetDate = asset.creationDate;
         
         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
         [formatter setDateFormat:@"yyyy"];
         NSString *yearString = [formatter stringFromDate:assetDate];
         [datesSubFolder addObject:yearString];
-            
+        
         [formatter setDateFormat:@"MM"];
         NSString *monthString = [formatter stringFromDate:assetDate];
         monthString = [NSString stringWithFormat:@"%@/%@", yearString, monthString];