marinofaggiana 4 years ago
parent
commit
8c72e8319d

+ 1 - 10
File Provider Extension/FileProviderExtension.swift

@@ -309,7 +309,6 @@ class FileProviderExtension: NSFileProviderExtension {
             
                 var size = 0 as Double
                 var error: NSError?
-                let metadata = tableMetadata()
                 
                 guard let tableDirectory = fileProviderUtility.sharedInstance.getTableDirectoryFromParentItemIdentifier(parentItemIdentifier, account: fileProviderData.sharedInstance.account, homeServerUrl: fileProviderData.sharedInstance.homeServerUrl) else {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))
@@ -342,18 +341,10 @@ class FileProviderExtension: NSFileProviderExtension {
                 
                 fileURL.stopAccessingSecurityScopedResource()
                                 
-                metadata.account = fileProviderData.sharedInstance.account
-                metadata.date = NSDate()
-                metadata.directory = false
-                metadata.etag = ""
-                metadata.fileName = fileName
-                metadata.fileNameView = fileName
-                metadata.ocId = ocIdTemp
-                metadata.serverUrl = tableDirectory.serverUrl
+                let metadata = NCManageDatabase.sharedInstance.createMetadata(account: fileProviderData.sharedInstance.account, fileName: fileName, ocId: ocIdTemp, serverUrl: tableDirectory.serverUrl, url: "", contentType: "")
                 metadata.session = k_upload_session_extension
                 metadata.size = size
                 metadata.status = Int(k_metadataStatusInUpload)
-                CCUtility.insertTypeFileIconName(fileName, metadata: metadata)
                 
                 guard let metadataForUpload = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))

+ 7 - 1
File Provider Extension/FileProviderItem.swift

@@ -22,6 +22,7 @@
 //
 
 import FileProvider
+import NCCommunication
 
 class FileProviderItem: NSObject, NSFileProviderItem {
 
@@ -41,7 +42,12 @@ class FileProviderItem: NSObject, NSFileProviderItem {
     }
     
     var typeIdentifier: String {
-        return CCUtility.insertTypeFileIconName(metadata.fileNameView, metadata: metadata)
+        let results = NCCommunicationCommon.sharedInstance.getInternalContenType(fileName: metadata.fileNameView, contentType: "", directory: metadata.directory)
+        metadata.contentType = results.contentType
+        metadata.iconName = results.iconName
+        metadata.typeFile = results.typeFile
+        
+        return results.contentType
     }
     
     var contentModificationDate: Date? {

+ 3 - 8
Share/ShareViewController.m

@@ -281,18 +281,13 @@
                
                 [CCUtility copyFileAtPath:fileNameLocal toPath:[CCUtility getDirectoryProviderStorageOcId:ocId fileNameView:fileNameForUpload]];
                
-                tableMetadata *metadata = [tableMetadata new];
-               
-                metadata.account = self.activeAccount;
+                tableMetadata *metadata = [[NCManageDatabase sharedInstance] createMetadataWithAccount:self.activeAccount fileName:fileNameForUpload ocId:ocId serverUrl:self.serverUrl url:@"" contentType:@""];
+                               
                 metadata.date = date;
                 metadata.etag = etag;
-                metadata.ocId = ocId;
-                metadata.fileName = fileNameForUpload;
-                metadata.fileNameView = fileNameForUpload;
                 metadata.serverUrl = self.serverUrl;
                 metadata.size = size;
-                (void)[CCUtility insertTypeFileIconName:fileNameForUpload metadata:metadata];
-               
+                
                 metadata = [[NCManageDatabase sharedInstance] addMetadata:metadata];
                 (void)[[NCManageDatabase sharedInstance] addLocalFileWithMetadata:metadata];
                

+ 2 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -1992,10 +1992,12 @@ class NCManageDatabase: NSObject {
         metadata.account = account
         metadata.contentType = results.contentType
         metadata.date = Date() as NSDate
+        metadata.iconName = results.iconName
         metadata.ocId = ocId
         metadata.fileName = fileName
         metadata.fileNameView = fileName
         metadata.serverUrl = serverUrl
+        metadata.typeFile = results.typeFile
         metadata.url = url
         return metadata
     }

+ 2 - 9
iOSClient/Main/CCMain.m

@@ -1180,20 +1180,13 @@
             continue;
         
         // Prepare record metadata
-        tableMetadata *metadataForUpload = [tableMetadata new];
-
-        metadataForUpload.account = appDelegate.activeAccount;
+        tableMetadata *metadataForUpload = [[NCManageDatabase sharedInstance] createMetadataWithAccount:appDelegate.activeAccount fileName:fileName ocId:[CCUtility createMetadataIDFromAccount:appDelegate.activeAccount serverUrl:serverUrl fileNameView:fileName directory:false] serverUrl:serverUrl url:@"" contentType:@""];
+        
         metadataForUpload.assetLocalIdentifier = asset.localIdentifier;
-        metadataForUpload.date = [NSDate new];
-        metadataForUpload.ocId = [CCUtility createMetadataIDFromAccount:appDelegate.activeAccount serverUrl:serverUrl fileNameView:fileName directory:false];
-        metadataForUpload.fileName = fileName;
-        metadataForUpload.fileNameView = fileName;
-        metadataForUpload.serverUrl = serverUrl;
         metadataForUpload.session = session;
         metadataForUpload.sessionSelector = selectorUploadFile;
         metadataForUpload.size = [[NCUtility sharedInstance] getFileSizeWithAsset:asset];
         metadataForUpload.status = k_metadataStatusWaitUpload;
-        [CCUtility insertTypeFileIconName:fileName metadata:metadataForUpload];
                         
         if ([[NCUtility sharedInstance] getMetadataConflictWithAccount:appDelegate.activeAccount serverUrl:serverUrl fileName:fileName] != nil) {
             [metadatasUploadInConflict addObject:metadataForUpload];

+ 1 - 4
iOSClient/Networking/NCNetworkingNotificationCenter.swift

@@ -72,10 +72,7 @@ import Foundation
                     // open View File
                     if (selector == selectorLoadFileView || selector == selectorLoadFileViewFavorite || selector == selectorLoadFileInternalView) && UIApplication.shared.applicationState == UIApplication.State.active {
                     
-                        var uti = CCUtility.insertTypeFileIconName(metadata.fileNameView, metadata: metadata)
-                        if uti == nil {
-                            uti = ""
-                        } else if uti!.contains("opendocument") && !NCUtility.sharedInstance.isRichDocument(metadata) {
+                        if metadata.contentType.contains("opendocument") && !NCUtility.sharedInstance.isRichDocument(metadata) {
                             metadata.typeFile = k_metadataTypeFile_unknown
                         }
                         

+ 6 - 2
iOSClient/Networking/OCNetworking.m

@@ -1864,8 +1864,12 @@
                         trash.trashbinOriginalLocation = itemDto.trashbinOriginalLocation;
                         trash.trashbinDeletionTime = [NSDate dateWithTimeIntervalSince1970:itemDto.trashbinDeletionTime];
 
-                        [CCUtility insertTypeFileIconName:trash.trashbinFileName metadata:(tableMetadata *)trash];
-
+                        NSDictionary *results = [[NCCommunicationCommon sharedInstance] objcGetInternalContenTypeWithFileName:trash.trashbinFileName contentType:@"" directory:itemDto.isDirectory];
+                        
+                        trash.contentType = results[@"contentType"];
+                        trash.iconName = results[@"iconName"];
+                        trash.typeFile = results[@"typeFile"];
+                        
                         [listTrash addObject:trash];
                     }
                 }

+ 8 - 1
iOSClient/Security/NCEndToEndMetadata.swift

@@ -22,6 +22,7 @@
 //
 
 import Foundation
+import NCCommunication
 
 class NCEndToEndMetadata : NSObject  {
 
@@ -219,7 +220,13 @@ class NCEndToEndMetadata : NSObject  {
                         
                         // Update metadata on tableMetadata
                         metadata?.fileNameView = encryptedFileAttributes.filename
-                        CCUtility.insertTypeFileIconName(encryptedFileAttributes.filename, metadata: metadata)
+                        
+                        let results = NCCommunicationCommon.sharedInstance.getInternalContenType(fileName: encryptedFileAttributes.filename, contentType: metadata!.contentType, directory: metadata!.directory)
+                        
+                        metadata?.contentType = results.contentType
+                        metadata?.iconName = results.iconName
+                        metadata?.typeFile = results.typeFile
+                                                
                         DispatchQueue.main.async {
                             NCManageDatabase.sharedInstance.addMetadata(metadata!)
                         }

+ 0 - 1
iOSClient/Utility/CCUtility.h

@@ -259,7 +259,6 @@
 // ===== CCMetadata =====
 
 + (tableMetadata *)insertFileSystemInMetadata:(tableMetadata *)metadata;
-+ (NSString *)insertTypeFileIconName:(NSString *)fileNameView metadata:(tableMetadata *)metadata;
 
 + (NSString *)createMetadataIDFromAccount:(NSString *)account serverUrl:(NSString *)serverUrl fileNameView:(NSString *)fileNameView directory:(BOOL)directory;
 

+ 1 - 113
iOSClient/Utility/CCUtility.m

@@ -1615,116 +1615,6 @@
 #pragma mark ===== CCMetadata =====
 #pragma --------------------------------------------------------------------------------------------
 
-+ (NSString *)insertTypeFileIconName:(NSString *)fileNameView metadata:(tableMetadata *)metadata
-{
-    CFStringRef fileUTI = nil;
-    NSString *returnFileUTI = nil;
-    
-    if ([fileNameView isEqualToString:@"."]) {
-        
-        metadata.typeFile = k_metadataTypeFile_unknown;
-        metadata.iconName = @"file";
-        
-    } else if (metadata.directory) {
-        
-        metadata.typeFile = k_metadataTypeFile_directory;
-        fileUTI = kUTTypeFolder;
-        
-        // Add contentType
-        if ([metadata.contentType isEqualToString:@""]) {
-            metadata.contentType = @"application/directory";
-        }
-        
-    } else {
-        
-        CFStringRef fileExtension = (__bridge CFStringRef)[fileNameView pathExtension];
-        NSString *ext = (__bridge NSString *)fileExtension;
-        ext = ext.uppercaseString;
-        fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
-        
-        // Add contentType
-        if ([metadata.contentType isEqualToString:@""]) {
-            CFStringRef mimeUTI = UTTypeCopyPreferredTagWithClass(fileUTI, kUTTagClassMIMEType);
-            metadata.contentType = (__bridge NSString *)mimeUTI;
-        }
-        
-        // Type image
-        if (UTTypeConformsTo(fileUTI, kUTTypeImage)) {
-            metadata.typeFile = k_metadataTypeFile_image;
-            metadata.iconName = @"file_photo";
-        }
-        // Type Video
-        else if (UTTypeConformsTo(fileUTI, kUTTypeMovie)) {
-            metadata.typeFile = k_metadataTypeFile_video;
-            metadata.iconName = @"file_movie";
-        }
-        // Type Audio
-        else if (UTTypeConformsTo(fileUTI, kUTTypeAudio)) {
-            metadata.typeFile = k_metadataTypeFile_audio;
-            metadata.iconName = @"file_audio";
-        }
-        // 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";
-            
-            NSString *typeFile = (__bridge NSString *)fileUTI;
-            
-            if ([typeFile isEqualToString:@"com.adobe.pdf"]) {
-                metadata.iconName = @"file_pdf";
-            }
-            
-            if ([typeFile isEqualToString:@"org.openxmlformats.spreadsheetml.sheet"]) {
-                metadata.iconName = @"file_xls";
-            }
-            
-            if ([typeFile isEqualToString:@"com.microsoft.excel.xls"]) {
-                metadata.iconName = @"file_xls";
-            }
-            
-            if ([typeFile isEqualToString:@"public.plain-text"] || [CCUtility isDocumentModifiableExtension:ext]) {
-                metadata.iconName = @"file_txt";
-            }
-            
-            if ([typeFile isEqualToString:@"public.html"]) {
-                metadata.iconName = @"file_code";
-            }
-        }
-        // Type compress
-        else if (UTTypeConformsTo(fileUTI, kUTTypeZipArchive) && [(__bridge NSString *)fileUTI containsString:@"org.openxmlformats"] == NO && [(__bridge NSString *)fileUTI containsString:@"oasis"] == NO) {
-            metadata.typeFile = k_metadataTypeFile_compress;
-            metadata.iconName = @"file_compress";
-        } else {
-            
-            // Type unknown
-            metadata.typeFile = k_metadataTypeFile_unknown;
-            
-            // icon uTorrent
-            if ([ext isEqualToString:@"TORRENT"]) {
-                
-                metadata.iconName = @"utorrent";
-                
-            } else if ([ext isEqualToString:@"IMI"]) {
-                
-                metadata.typeFile = k_metadataTypeFile_imagemeter;
-                metadata.iconName = @"imagemeter";
-            
-            } else {
-            
-                metadata.iconName = @"file";
-            }
-        }
-    }
-    
-    if (fileUTI != nil) {
-        returnFileUTI = (__bridge NSString *)fileUTI;
-        CFRelease(fileUTI);
-    }
-    
-    return returnFileUTI;
-}
-
 + (tableMetadata *)insertFileSystemInMetadata:(tableMetadata *)metadata
 {
     NSString *fileNamePath = [CCUtility getDirectoryProviderStorageOcId:metadata.ocId fileNameView:metadata.fileName];
@@ -1737,9 +1627,7 @@
         metadata.date = [NSDate date];
     }
     metadata.size = [attributes[NSFileSize] longValue];
-    
-    [self insertTypeFileIconName:metadata.fileNameView metadata:metadata];
-    
+        
     return metadata;
 }