mattermost-mobile/ios/Mattermost/SwimeProxy.swift
Elias Nahum ee2a25df84
Fix iOS crash when pasting large images and included other file types (#3424)
* Fix iOS crash when pasting large images and included other file types

* Rename pasteImages to pasteFiles and fix copying heic images

* remove comment

* Feedback review
2019-10-24 20:41:38 +03:00

61 lines
1.7 KiB
Swift

//
// SwimeProxy.swift
// Mattermost
//
// Created by Elias Nahum on 15-10-19.
// Copyright © 2019 Facebook. All rights reserved.
//
import Foundation
import Swime
@objc @objcMembers public class MimeTypeProxy: NSObject {
public init(mime: String, ext: String) {
self.mime = mime
self.ext = ext
}
/// Mime type string representation. For example "application/pdf"
public let mime: String
/// Mime type extension. For example "pdf"
public let ext: String
}
@objc @objcMembers public class SwimeProxy: NSObject {
public class var shared :SwimeProxy {
struct Singleton {
static let instance = SwimeProxy()
}
return Singleton.instance
}
public func getMimeFromUti(uti: String) -> MimeTypeProxy? {
switch uti {
case "org.openxmlformats.openxml":
return MimeTypeProxy(mime: "application/xml", ext: ".xml")
case "org.openxmlformats.wordprocessingml.document":
return MimeTypeProxy(mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", ext: ".docx")
case "org.openxmlformats.spreadsheetml.sheet":
return MimeTypeProxy(mime: "pplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ext: ".xlsx")
case "org.openxmlformats.presentationml.presentation":
return MimeTypeProxy(mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", ext: ".pptx")
default:
return nil
}
}
@objc public func getMimeAndExtension(data: Data, uti: String) -> MimeTypeProxy? {
let mime = getMimeFromUti(uti: uti);
if (mime != nil) {
return mime
}
let proxy = Swime.mimeType(data: data)
if (proxy != nil) {
return MimeTypeProxy(mime: proxy!.mime, ext: proxy!.ext)
}
return nil
}
}