diff --git a/src/mime_app.rs b/src/mime_app.rs index a4956f8..e1f1ca2 100644 --- a/src/mime_app.rs +++ b/src/mime_app.rs @@ -254,7 +254,6 @@ impl MimeAppCache { pub fn get_apps_for_mime(&self, mime_type: &Mime) -> Vec<(&Arc, MimeAppMatch)> { let mut results = Vec::new(); - let mut dedupe = FxHashSet::default(); // start with exact matches @@ -265,6 +264,20 @@ impl MimeAppCache { .map(|mime_app| (mime_app, MimeAppMatch::Exact)), ); + let include_mime = match mime_type.type_().as_str() { + "audio" => Some("video/mp4".parse::().expect("video/mp4 mime")), + _ => None, + }; + + if let Some(mime) = include_mime { + results.extend( + self.get(&mime) + .iter() + .filter(|&mime_app| dedupe.insert(&mime_app.id)) + .map(|mime_app| (mime_app, MimeAppMatch::Exact)), + ); + } + // grab matches based off of subclass / parent mime type if let Some(parent_types) = crate::mime_icon::parent_mime_types(mime_type) { for parent_type in parent_types {