mattermost-mobile/ios/Mattermost/SwimeProxy.swift
2020-11-17 14:20:58 -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
}
}