Sfoglia il codice sorgente

add: convertSVGtoPNGWriteToUserData

Marino Faggiana 6 anni fa
parent
commit
36ea15a884

+ 1 - 13
iOSClient/Networking/NCService.swift

@@ -380,19 +380,7 @@ class NCService: NSObject, OCNetworkingDelegate {
                 for notification in listOfNotifications! {
                     let id = (notification as! OCNotifications).idNotification
                     if let icon = (notification as! OCNotifications).icon {
-                        if let iconURL = URL(string: icon.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!) {
-                            let fileName = iconURL.deletingPathExtension().lastPathComponent
-                            let imageNamePath = CCUtility.getDirectoryUserData() + "/" + fileName + ".png"
-                            if !FileManager.default.fileExists(atPath: imageNamePath) {
-                                if let svgkImage: SVGKImage = SVGKImage(contentsOf: iconURL) {
-                                    if let image: UIImage = svgkImage.uiImage {
-                                        if let pngImageData = image.pngData() {
-                                            try? pngImageData.write(to: imageNamePath.url)
-                                        }
-                                    }
-                                }
-                            }
-                        }
+                        NCUtility.sharedInstance.convertSVGtoPNGWriteToUserData(svgUrlString: icon)
                     }
                     new = new + String(describing: id)
                 }

+ 2 - 0
iOSClient/Utility/CCUtility.h

@@ -205,6 +205,8 @@
 
 + (NSString *)getMimeType:(NSString *)fileNameView;
 
++ (void)writeData:(NSData *)data fileNamePath:(NSString *)fileNamePath;
+
 // ===== E2E Encrypted =====
 
 + (NSString *)generateRandomIdentifier;

+ 29 - 24
iOSClient/Utility/CCUtility.m

@@ -1071,6 +1071,30 @@
     return [@[@"TXT", @"MD", @"MARKDOWN", @"ORG"] containsObject:fileExtension];
 }
 
++ (NSString *)getMimeType:(NSString *)fileNameView
+{
+    CFStringRef fileUTI = nil;
+    NSString *returnFileUTI = nil;
+    
+    if ([fileNameView isEqualToString:@"."]) {
+        
+        return returnFileUTI;
+        
+    } else {
+        CFStringRef fileExtension = (__bridge CFStringRef)[fileNameView pathExtension];
+        NSString *ext = (__bridge NSString *)fileExtension;
+        ext = ext.uppercaseString;
+        fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
+        
+        if (fileUTI != nil) {
+            returnFileUTI = (__bridge NSString *)fileUTI;
+            CFRelease(fileUTI);
+        }
+    }
+    
+    return returnFileUTI;
+}
+
 + (NSString *)getDirectoryScan
 {
     NSString *path = [[[CCUtility getDirectoryGroup] URLByAppendingPathComponent:k_appScan] path];
@@ -1081,6 +1105,11 @@
     return path;
 }
 
++ (void)writeData:(NSData *)data fileNamePath:(NSString *)fileNamePath
+{
+    [data writeToFile:fileNamePath atomically:YES];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== E2E Encrypted =====
 #pragma --------------------------------------------------------------------------------------------
@@ -1176,30 +1205,6 @@
     return metadata;
 }
 
-+ (NSString *)getMimeType:(NSString *)fileNameView
-{
-    CFStringRef fileUTI = nil;
-    NSString *returnFileUTI = nil;
-    
-    if ([fileNameView isEqualToString:@"."]) {
-        
-        return returnFileUTI;
-        
-    } else {
-        CFStringRef fileExtension = (__bridge CFStringRef)[fileNameView pathExtension];
-        NSString *ext = (__bridge NSString *)fileExtension;
-        ext = ext.uppercaseString;
-        fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
-        
-        if (fileUTI != nil) {
-            returnFileUTI = (__bridge NSString *)fileUTI;
-            CFRelease(fileUTI);
-        }
-    }
-    
-    return returnFileUTI;
-}
-
 + (NSString *)insertTypeFileIconName:(NSString *)fileNameView metadata:(tableMetadata *)metadata
 {
     CFStringRef fileUTI = nil;

+ 27 - 0
iOSClient/Utility/NCUtility.swift

@@ -22,6 +22,7 @@
 //
 
 import Foundation
+import SVGKit
 
 class NCUtility: NSObject {
 
@@ -164,6 +165,32 @@ class NCUtility: NSObject {
         
         return (k_layout_list, "fileName", true, "none", true)
     }
+    
+    func convertSVGtoPNGWriteToUserData(svgUrlString: String) {
+        
+        guard let svgUrlString = svgUrlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {
+            return
+        }
+        guard let iconURL = URL(string: svgUrlString) else {
+            return
+        }
+        
+        let fileName = iconURL.deletingPathExtension().lastPathComponent
+        let imageNamePath = CCUtility.getDirectoryUserData() + "/" + fileName + ".png"
+        
+        if !FileManager.default.fileExists(atPath: imageNamePath) {
+            guard let svgkImage: SVGKImage = SVGKImage(contentsOf: iconURL) else {
+                return
+            }
+            guard let image: UIImage = svgkImage.uiImage else {
+                return
+            }
+            guard let pngImageData = image.pngData() else {
+                return
+            }
+            CCUtility.write(pngImageData, fileNamePath: imageNamePath)
+        }
+    }
 }
 
 //MARK: -