Skip to content

Commit ab9d2d4

Browse files
committed
WIP
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
1 parent ea1ed18 commit ab9d2d4

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

iOSClient/Menu/NCContextMenu.swift

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -448,11 +448,24 @@ class NCContextMenu: NSObject {
448448
menuElements.append(action)
449449
}
450450

451+
//
452+
// CLIENT INTEGRATION
453+
//
451454
if let apps = capabilities.clientIntegration?.apps {
452455
for (appName, context) in apps {
453456
for item in context.contextMenu {
454-
// if item.mimetypeFilters == nil || (item.mimetypeFilters?.contains(metadata.contentType) == true) {
457+
guard let mimetypeFilters = item.mimetypeFilters else { continue }
458+
let filters = mimetypeFilters.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
459+
let matchesMimeType = filters.contains(where: { filter in
460+
if filter.hasSuffix("/") {
461+
// Handle wildcard MIME types like "audio/", "video/", "image/"
462+
return metadata.contentType.hasPrefix(filter)
463+
} else {
464+
return metadata.contentType == filter
465+
}
466+
})
455467

468+
if matchesMimeType {
456469
let deferredElement = UIDeferredMenuElement { completion in
457470
Task {
458471
var iconImage: UIImage
@@ -474,7 +487,6 @@ class NCContextMenu: NSObject {
474487
)
475488
}
476489

477-
// Create the action once the icon is ready
478490
let action = await UIAction(
479491
title: item.name,
480492
image: iconImage
@@ -515,7 +527,7 @@ class NCContextMenu: NSObject {
515527

516528
menuElements.append(deferredElement)
517529
}
518-
// }
530+
}
519531
}
520532
}
521533

0 commit comments

Comments
 (0)