aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/FileInfo.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Hotline/Models/FileInfo.swift')
-rw-r--r--Hotline/Models/FileInfo.swift54
1 files changed, 46 insertions, 8 deletions
diff --git a/Hotline/Models/FileInfo.swift b/Hotline/Models/FileInfo.swift
index 0eadd10..272dd7b 100644
--- a/Hotline/Models/FileInfo.swift
+++ b/Hotline/Models/FileInfo.swift
@@ -15,28 +15,66 @@ import UniformTypeIdentifiers
let isUnavailable: Bool
var isDropboxFolder: Bool {
- guard self.isFolder,
- (self.name.range(of: "upload", options: [.caseInsensitive]) != nil)
- || (self.name.range(of: "drop box", options: [.caseInsensitive]) != nil)
- else {
+ guard self.isFolder else {
return false
}
- return true
+
+ if self.name.range(of: "upload", options: [.caseInsensitive]) != nil {
+ return true
+ }
+
+ if self.name.range(of: "dropbox", options: [.caseInsensitive]) != nil {
+ return true
+ }
+
+ if self.name.range(of: "drop box", options: [.caseInsensitive]) != nil {
+ return true
+ }
+
+ return false
}
var isAdminDropboxFolder: Bool {
self.isDropboxFolder && (self.name.range(of: "admin", options: [.caseInsensitive]) != nil)
}
-
+
+ var isAppBundle: Bool {
+ guard self.isFolder else {
+ return false
+ }
+ return self.name.lowercased().hasSuffix(".app")
+ }
+
var expanded: Bool = false
var children: [FileInfo]? = nil
var isPreviewable: Bool {
- let fileExtension = (self.name as NSString).pathExtension
+ var fileExtension = (self.name as NSString).pathExtension.lowercased()
+ if fileExtension.isEmpty && !self.type.isEmpty {
+ let type = self.type.lowercased()
+ if let ext = FileManager.HFSTypeToExtension[type] {
+ fileExtension = ext
+ }
+ }
+
if let fileType = UTType(filenameExtension: fileExtension) {
+ if fileType.canBePreviewedByQuickLook {
+ return true
+ }
+
if fileType.isSubtype(of: .image) {
return true
- } else if fileType.isSubtype(of: .text) {
+ }
+ else if fileType.isSubtype(of: .pdf) || fileExtension == "pdf" {
+ return true
+ }
+ else if fileType.isSubtype(of: .audio) {
+ return true
+ }
+ else if fileType.isSubtype(of: .video) {
+ return true
+ }
+ else if fileType.isSubtype(of: .text) {
return true
}
}