Marino Faggiana 6 年之前
父節點
當前提交
edac26a205

+ 1 - 1
iOSClient/AutoUpload/NCAutoUpload.m

@@ -378,7 +378,7 @@
         NSDate *assetDate = asset.creationDate;
         PHAssetMediaType assetMediaType = asset.mediaType;
         NSString *session;
-        NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameAutoUploadMask keyFileNameType:k_keyFileNameAutoUploadType];
+        NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameAutoUploadMask keyFileNameType:k_keyFileNameAutoUploadType keyFileNameOriginal:k_keyFileNameOriginalAutoUpload];
 
         // Select type of session
         

+ 2 - 0
iOSClient/CCGlobal.h

@@ -261,6 +261,8 @@
 #define k_keyFileNameType                               @"fileNameType"
 #define k_keyFileNameAutoUploadMask                     @"fileNameAutoUploadMask"
 #define k_keyFileNameAutoUploadType                     @"fileNameAutoUploadType"
+#define k_keyFileNameOriginal                           @"fileNameOriginal"
+#define k_keyFileNameOriginalAutoUpload                 @"fileNameOriginalAutoUpload"
 
 // Activity
 #define k_activityVerboseDefault                        0

+ 30 - 21
iOSClient/Create/CCCreateCloud.swift

@@ -138,6 +138,7 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
         
         section = XLFormSectionDescriptor.formSection()
         form.addFormSection(section)
+        
         row = XLFormRowDescriptor(tag: "ButtonDestinationFolder", rowType: XLFormRowDescriptorTypeButton, title: self.titleServerUrl)
         let imageFolder = CCGraphics.changeThemingColorImage(UIImage(named: "folder")!, multiplier:2, color: NCBrandColor.sharedInstance.brandElement) as UIImage
         row.cellConfig.setObject(imageFolder, forKey: "imageView.image" as NSCopying)
@@ -145,12 +146,14 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
         row.action.formSelector = #selector(changeDestinationFolder(_:))
         section.addFormRow(row)
         
-        // Section: Folder Photo
+        // Section Switch
         
         section = XLFormSectionDescriptor.formSection()
         form.addFormSection(section)
         
-        row = XLFormRowDescriptor(tag: "useFolderPhoto", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_photo_camera_", comment: ""))
+        // Folder Photo
+        
+        row = XLFormRowDescriptor(tag: "useFolderPhoto", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_use_folder_photos_", comment: ""))
         row.value = 0
         section.addFormRow(row)
         
@@ -166,12 +169,17 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
         }
         section.addFormRow(row)
 
-        // Section: Add File Name Type
-
-        section = XLFormSectionDescriptor.formSection()
-        form.addFormSection(section)
+        // Maintain the original fileName
+        
+        row = XLFormRowDescriptor(tag: "maintainOriginalFileName", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_maintain_original_filename_", comment: ""))
+        row.value = CCUtility.getOriginalFileName(k_keyFileNameOriginal)
+        section.addFormRow(row)
+        
+        // Add File Name Type
 
-        row = XLFormRowDescriptor(tag: "addFileNameType", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_filenametype_photo_video_", comment: ""))
+        row = XLFormRowDescriptor(tag: "addFileNameType", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_add_filenametype_", comment: ""))
+        row.hidden = "$\("maintainOriginalFileName") == 1"
+        
         row.value = CCUtility.getFileNameType(k_keyFileNameType)
         section.addFormRow(row)
         
@@ -181,7 +189,8 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
         form.addFormSection(section)
         
         row = XLFormRowDescriptor(tag: "maskFileName", rowType: XLFormRowDescriptorTypeAccount, title: NSLocalizedString("_filename_", comment: ""))
-        
+        row.hidden = "$\("maintainOriginalFileName") == 1"
+
         let fileNameMask : String = CCUtility.getFileNameMask(k_keyFileNameMask)
         if fileNameMask.count > 0 {
             row.value = fileNameMask
@@ -189,8 +198,9 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
         section.addFormRow(row)
         
         // Section: Preview File Name
-                
+        
         row = XLFormRowDescriptor(tag: "previewFileName", rowType: XLFormRowDescriptorTypeTextView, title: "")
+
         row.height = 180
         row.cellConfig.setObject(NCBrandColor.sharedInstance.backgroundView, forKey: "backgroundColor" as NSCopying)
         row.cellConfig.setObject(NCBrandColor.sharedInstance.backgroundView, forKey: "textView.backgroundColor" as NSCopying)
@@ -226,6 +236,10 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
                 
             }
         }
+        else if formRow.tag == "maintainOriginalFileName" {
+            CCUtility.setOriginalFileName((formRow.value! as AnyObject).boolValue, key: k_keyFileNameOriginal)
+            self.reloadForm()
+        }
         else if formRow.tag == "addFileNameType" {
             CCUtility.setFileNameType((formRow.value! as AnyObject).boolValue, key: k_keyFileNameType)
             self.reloadForm()
@@ -308,6 +322,7 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
 
     //MARK: TableView
 
+    /*
     override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
         
         switch section {
@@ -332,7 +347,7 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
             return ""
         }
     }
-    
+ 
     override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
         
         switch section {
@@ -348,7 +363,8 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
             return ""
         }
     }
-
+    */
+    
     // MARK: - Action
 
     func moveServerUrl(to serverUrlTo: String!, title: String!) {
@@ -397,13 +413,6 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
         var returnString: String = ""
         let asset = assets[0] as! PHAsset
         
-        if CCUtility.getOriginalFileName() {
-            let resources = PHAssetResource.assetResources(for: asset)
-            if let resource = resources.first {
-                return resource.originalFilename
-            }
-        }
-        
         if let valueRename = valueRename {
             
             let valueRenameTrimming = valueRename.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
@@ -414,18 +423,18 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
                 CCUtility.setFileNameMask(valueRename, key: k_keyFileNameMask)
                 self.form.delegate = self
                 
-                returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: k_keyFileNameMask, keyFileNameType: k_keyFileNameType)
+                returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: k_keyFileNameMask, keyFileNameType: k_keyFileNameType, keyFileNameOriginal: k_keyFileNameOriginal)
                 
             } else {
                 
                 CCUtility.setFileNameMask("", key: k_keyFileNameMask)
-                returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: nil, keyFileNameType: k_keyFileNameType)
+                returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: nil, keyFileNameType: k_keyFileNameType, keyFileNameOriginal: k_keyFileNameOriginal)
             }
             
         } else {
             
             CCUtility.setFileNameMask("", key: k_keyFileNameMask)
-            returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: nil, keyFileNameType: k_keyFileNameType)
+            returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: nil, keyFileNameType: k_keyFileNameType, keyFileNameOriginal: k_keyFileNameOriginal)
         }
         
         return String(format: NSLocalizedString("_preview_filename_", comment: ""), "MM,MMM,DD,YY,YYYY and HH,hh,mm,ss,ampm") + ":" + "\n\n" + returnString

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -1325,7 +1325,7 @@
     
     for (PHAsset *asset in assets) {
         
-        NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameMask keyFileNameType:k_keyFileNameType];
+        NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameMask keyFileNameType:k_keyFileNameType keyFileNameOriginal:k_keyFileNameOriginal];
         
         NSDate *assetDate = asset.creationDate;
         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

+ 23 - 8
iOSClient/Settings/NCManageAutoUploadFileName.swift

@@ -46,22 +46,31 @@ class NCManageAutoUploadFileName: XLFormViewController {
         var section : XLFormSectionDescriptor
         var row : XLFormRowDescriptor
 
-        // Section: Add File Name Type
-        
         section = XLFormSectionDescriptor.formSection()
         form.addFormSection(section)
         
-        row = XLFormRowDescriptor(tag: "addFileNameType", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_filenametype_photo_video_", comment: ""))
-        row.value = CCUtility.getFileNameType(k_keyFileNameAutoUploadType)
+        // Maintain the original fileName
+        
+        row = XLFormRowDescriptor(tag: "maintainOriginalFileName", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_maintain_original_filename_", comment: ""))
+        row.value = CCUtility.getOriginalFileName(k_keyFileNameOriginalAutoUpload)
         section.addFormRow(row)
         
+        // Add File Name Type
+        
+        row = XLFormRowDescriptor(tag: "addFileNameType", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_add_filenametype_", comment: ""))
+        row.hidden = "$\("maintainOriginalFileName") == 1"
+
+        row.value = CCUtility.getFileNameType(k_keyFileNameAutoUploadType)
+        section.addFormRow(row)
+                
         // Section: Rename File Name
         
         section = XLFormSectionDescriptor.formSection()
         form.addFormSection(section)
         
         row = XLFormRowDescriptor(tag: "maskFileName", rowType: XLFormRowDescriptorTypeAccount, title: NSLocalizedString("_filename_", comment: ""))
-        
+        row.hidden = "$\("maintainOriginalFileName") == 1"
+
         let fileNameMask : String = CCUtility.getFileNameMask(k_keyFileNameAutoUploadMask)
         if fileNameMask.count > 0 {
             row.value = fileNameMask
@@ -89,6 +98,10 @@ class NCManageAutoUploadFileName: XLFormViewController {
             CCUtility.setFileNameType((formRow.value! as AnyObject).boolValue, key: k_keyFileNameAutoUploadType)
             self.reloadForm()
         }
+        else if formRow.tag == "maintainOriginalFileName" {
+            CCUtility.setOriginalFileName((formRow.value! as AnyObject).boolValue, key:k_keyFileNameOriginalAutoUpload)
+            self.reloadForm()
+        }
         else if formRow.tag == "maskFileName" {
             
             let fileName = formRow.value as? String
@@ -151,6 +164,7 @@ class NCManageAutoUploadFileName: XLFormViewController {
     
     //MARK: TableView
     
+    /*
     override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
         
         switch section {
@@ -181,6 +195,7 @@ class NCManageAutoUploadFileName: XLFormViewController {
             return ""
         }
     }
+    */
     
     // MARK: - Utility
     
@@ -198,18 +213,18 @@ class NCManageAutoUploadFileName: XLFormViewController {
                 CCUtility.setFileNameMask(valueRename, key: k_keyFileNameAutoUploadMask)
                 self.form.delegate = self
                 
-                returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: dateExample, fileType: PHAssetMediaType.image, keyFileName: k_keyFileNameAutoUploadMask, keyFileNameType: k_keyFileNameAutoUploadType)
+                returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: dateExample, fileType: PHAssetMediaType.image, keyFileName: k_keyFileNameAutoUploadMask, keyFileNameType: k_keyFileNameAutoUploadType, keyFileNameOriginal: k_keyFileNameOriginalAutoUpload)
 
             } else {
                 
                 CCUtility.setFileNameMask("", key: k_keyFileNameAutoUploadMask)
-                returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: dateExample, fileType: PHAssetMediaType.image, keyFileName: nil, keyFileNameType: k_keyFileNameAutoUploadType)
+                returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: dateExample, fileType: PHAssetMediaType.image, keyFileName: nil, keyFileNameType: k_keyFileNameAutoUploadType, keyFileNameOriginal: k_keyFileNameOriginalAutoUpload)
             }
             
         } else {
             
             CCUtility.setFileNameMask("", key: k_keyFileNameAutoUploadMask)
-            returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: dateExample, fileType: PHAssetMediaType.image, keyFileName: nil, keyFileNameType: k_keyFileNameAutoUploadType)
+            returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: dateExample, fileType: PHAssetMediaType.image, keyFileName: nil, keyFileNameType: k_keyFileNameAutoUploadType, keyFileNameOriginal: k_keyFileNameOriginalAutoUpload)
         }
         
         return String(format: NSLocalizedString("_preview_filename_", comment: ""), "MM,MMM,DD,YY,YYYY and HH,hh,mm,ss,ampm") + ":" + "\n\n" + returnString

+ 1 - 0
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -491,6 +491,7 @@
 "_forbidden_characters_"            = "Invalid character in filename";
 "_add_filenametype_"                = "Specify type in filename";
 "_filenametype_photo_video_"        = "Photo/Video";
+"_maintain_original_filename_"      = "Maintain original filename";
 
 // Notification
 

+ 3 - 3
iOSClient/Utility/CCUtility.h

@@ -111,8 +111,8 @@
 + (BOOL)getDirectoryOnTop;
 + (void)setDirectoryOnTop:(BOOL)directoryOnTop;
 
-+ (BOOL)getOriginalFileName;
-+ (void)setOriginalFileName:(BOOL)value;
++ (BOOL)getOriginalFileName:(NSString *)key;
++ (void)setOriginalFileName:(BOOL)value key:(NSString *)key;
 
 + (NSString *)getFileNameMask:(NSString *)key;
 + (void)setFileNameMask:(NSString *)mask key:(NSString *)key;
@@ -165,7 +165,7 @@
 + (NSString *)stringAppendServerUrl:(NSString *)serverUrl addFileName:(NSString *)addFileName;
 
 + (NSString *)createRandomString:(int)numChars;
-+ (NSString *)createFileName:fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType;
++ (NSString *)createFileName:fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType keyFileNameOriginal:(NSString *)keyFileNameOriginal;
 
 + (NSURL *)getDirectoryGroup;
 + (NSString *)getHomeServerUrlActiveUrl:(NSString *)activeUrl;

+ 10 - 5
iOSClient/Utility/CCUtility.m

@@ -373,15 +373,15 @@
     [UICKeyChainStore setString:sDirectoryOnTop forKey:@"directoryOnTop" service:k_serviceShareKeyChain];
 }
 
-+ (BOOL)getOriginalFileName
++ (BOOL)getOriginalFileName:(NSString *)key
 {
-    return [[UICKeyChainStore stringForKey:@"originalFileName" service:k_serviceShareKeyChain] boolValue];
+    return [[UICKeyChainStore stringForKey:key service:k_serviceShareKeyChain] boolValue];
 }
 
-+ (void)setOriginalFileName:(BOOL)value
++ (void)setOriginalFileName:(BOOL)value key:(NSString *)key
 {
     NSString *sValue = (value) ? @"true" : @"false";
-    [UICKeyChainStore setString:sValue forKey:@"originalFileName" service:k_serviceShareKeyChain];
+    [UICKeyChainStore setString:sValue forKey:key service:k_serviceShareKeyChain];
 }
 
 + (NSString *)getFileNameMask:(NSString *)key
@@ -658,10 +658,15 @@
     return [NSString stringWithFormat:@"%@", randomString];
 }
 
-+ (NSString *)createFileName:fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType
++ (NSString *)createFileName:fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType keyFileNameOriginal:(NSString *)keyFileNameOriginal
 {
     BOOL addFileNameType = NO;
     
+    // Original FileName ?
+    if ([self getOriginalFileName:keyFileNameOriginal]) {
+        return fileName;
+    }
+    
     NSString *numberFileName;
     if ([fileName length] > 8) numberFileName = [fileName substringWithRange:NSMakeRange(04, 04)];
     else numberFileName = [CCUtility getIncrementalNumber];