aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/FileInfo.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-11-27 23:38:04 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-11-27 23:38:04 +0100
commit213710bf5bd6413c747bf126db50816ef5de5a6e (patch)
tree912f8cf87955a08077c92fea8ad934f50b7ab975 /Hotline/Models/FileInfo.swift
parentf466b21dc02f78c984ba6748e703f6780a7a0db4 (diff)
parent6a95b53616a4abfa306ddce43151cf4fefbd20ed (diff)
Merge remote-tracking branch 'upstream/main'
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
}
}