Эх сурвалжийг харах

https://github.com/nextcloud/ios/pull/492

Marino Faggiana 6 жил өмнө
parent
commit
f8ca30bda9

+ 6 - 10
iOSClient/Create/CCCreateCloud.swift

@@ -587,16 +587,12 @@ class CreateFormUploadFile: XLFormViewController, CCMoveDelegate {
         let ext = (name as! NSString).pathExtension.uppercased()
         var fileNameSave = ""
         
-        switch ext
-        {
-            case "":
-                fileNameSave = name as! String + ".txt"
-            
-            case "TXT":
-                fileNameSave = name as! String
-            
-            default:
-                fileNameSave = (name as! NSString).deletingPathExtension + ".txt"
+        if (ext == "") {
+            fileNameSave = name as! String + ".txt"
+        } else if (CCUtility.isDocumentModifiableExtension(ext)) {
+            fileNameSave = name as! String
+        } else {
+            fileNameSave = (name as! NSString).deletingPathExtension + ".txt"
         }
         
         guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl) else {

+ 2 - 2
iOSClient/Main/CCDetail.m

@@ -201,7 +201,7 @@
     _buttonShare  = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"share"] style:UIBarButtonItemStylePlain target:self action:@selector(shareButtonPressed:)];
     _buttonDelete = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(deleteButtonPressed:)];
     
-    if ([_fileNameExtension isEqualToString:@"TXT"]) {
+    if ([CCUtility isDocumentModifiableExtension:_fileNameExtension]) {
         if ([CCUtility isFolderEncrypted:[[NCManageDatabase sharedInstance] getServerUrl:_metadataDetail.directoryID] account:appDelegate.activeAccount]) // E2EE
             [_toolbar setItems:[NSArray arrayWithObjects: _buttonModifyTxt, flexible, _buttonDelete, fixedSpaceMini, _buttonAction,  nil]];
         else
@@ -316,7 +316,7 @@
             [self.webView  loadHTMLString:[NSString stringWithFormat:@"<div style='font-size:%@;font-family:%@;'><pre>%@",@"20",@"Sans-Serif",dataFile] baseURL:nil];
         }
         
-    } else if ([_fileNameExtension isEqualToString:@"TXT"] || [_fileNameExtension isEqualToString:@"MD"]) {
+    } else if ([CCUtility isDocumentModifiableExtension:_fileNameExtension]) {
         
         NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
         NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:nil delegateQueue:nil];

+ 2 - 0
iOSClient/Utility/CCUtility.h

@@ -189,6 +189,8 @@
 
 + (NSArray *)createNameSubFolder:(PHFetchResult *)assets;
 
++ (BOOL)isDocumentModifiableExtension:(NSString *)fileExtension;
+
 // ===== E2E Encrypted =====
 
 + (NSString *)generateRandomIdentifier;

+ 9 - 2
iOSClient/Utility/CCUtility.m

@@ -982,6 +982,13 @@
     return (NSArray *)datesSubFolder;
 }
 
++ (BOOL)isDocumentModifiableExtension:(NSString *)fileExtension
+{
+    // Use UPPERCASE extension :
+    
+    return [@[@"TXT", @"MD", @"MARKDOWN", @"ORG"] containsObject:fileExtension];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== E2E Encrypted =====
 #pragma --------------------------------------------------------------------------------------------
@@ -1120,8 +1127,8 @@
             metadata.typeFile = k_metadataTypeFile_audio;
             metadata.iconName = @"file_audio";
         }
-        // Type Document [DOC] [PDF] [XLS] [TXT] (RTF = "public.rtf" - ODT = "org.oasis-open.opendocument.text") [MD]
-        else if (UTTypeConformsTo(fileUTI, kUTTypeContent) || [ext isEqualToString:@"MD"]) {
+        // Type Document [DOC] [PDF] [XLS] [TXT] (RTF = "public.rtf" - ODT = "org.oasis-open.opendocument.text") + isDocumentModifiableExtension
+        else if (UTTypeConformsTo(fileUTI, kUTTypeContent) || [CCUtility isDocumentModifiableExtension:ext]) {
             metadata.typeFile = k_metadataTypeFile_document;
             metadata.iconName = @"document";