Ver Fonte

allow to save images with specific filename

cyberta há 3 anos atrás
pai
commit
29664387b4
1 ficheiros alterados com 15 adições e 8 exclusões
  1. 15 8
      deltachat-ios/Helper/ImageFormat.swift

+ 15 - 8
deltachat-ios/Helper/ImageFormat.swift

@@ -68,12 +68,12 @@ extension ImageFormat {
         return loadImageFrom(data: imageData)
     }
 
-    public static func saveImage(image: UIImage) -> String? {
+    public static func saveImage(image: UIImage, name: String? = nil) -> String? {
         if image.sd_isAnimated,
            let data = image.sd_imageData() {
             let format = ImageFormat.get(from: data)
             if format != .unknown {
-                return ImageFormat.saveImage(data: data, suffix: format.rawValue)
+                return ImageFormat.saveImage(data: data, name: name, suffix: format.rawValue)
             }
         }
         let suffix = image.isTransparent() ? "png" : "jpg"
@@ -81,15 +81,22 @@ extension ImageFormat {
             return nil
         }
 
-        return saveImage(data: data, suffix: suffix)
+        return saveImage(data: data, name: name, suffix: suffix)
     }
 
-    public static func saveImage(data: Data, suffix: String) -> String? {
-        let timestamp = Double(Date().timeIntervalSince1970)
+    public static func saveImage(data: Data, name: String? = nil, suffix: String) -> String? {
+        var path: URL?
         guard let directory = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask,
-                                                           appropriateFor: nil, create: false) as NSURL,
-            let path = directory.appendingPathComponent("\(timestamp).\(suffix)")
-            else { return nil }
+                                                              appropriateFor: nil, create: false) as NSURL
+        else { return nil }
+        if let name = name {
+            path = directory.appendingPathComponent("\(name).\(suffix)")
+        } else {
+            let timestamp = Double(Date().timeIntervalSince1970)
+            path = directory.appendingPathComponent("\(timestamp).\(suffix)")
+        }
+
+        guard let path = path else { return nil }
 
         do {
             try data.write(to: path)