File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments