diff --git a/plugins/deep-link/build.rs b/plugins/deep-link/build.rs
index bffa4675..ce2da418 100644
--- a/plugins/deep-link/build.rs
+++ b/plugins/deep-link/build.rs
@@ -9,25 +9,50 @@ use config::{AssociatedDomain, Config};
const COMMANDS: &[&str] = &["get_current"];
// TODO: Consider using activity-alias in case users may have multiple activities in their app.
-// TODO: Do we want to support the other path* configs too?
fn intent_filter(domain: &AssociatedDomain) -> String {
format!(
r#"
-
-
+ {}
{}
+ {}
+ {}
+ {}
"#,
+ domain
+ .scheme
+ .iter()
+ .map(|scheme| format!(r#""#))
+ .collect::>()
+ .join("\n "),
domain.host,
+ domain
+ .path
+ .iter()
+ .map(|path| format!(r#""#))
+ .collect::>()
+ .join("\n "),
+ domain
+ .path_pattern
+ .iter()
+ .map(|pattern| format!(r#""#))
+ .collect::>()
+ .join("\n "),
domain
.path_prefix
.iter()
.map(|prefix| format!(r#""#))
.collect::>()
- .join("\n ")
+ .join("\n "),
+ domain
+ .path_suffix
+ .iter()
+ .map(|suffix| format!(r#""#))
+ .collect::>()
+ .join("\n "),
)
}
diff --git a/plugins/deep-link/src/config.rs b/plugins/deep-link/src/config.rs
index 80f0a4c0..01470d4f 100644
--- a/plugins/deep-link/src/config.rs
+++ b/plugins/deep-link/src/config.rs
@@ -10,10 +10,20 @@ use serde::{Deserialize, Deserializer};
#[derive(Deserialize)]
pub struct AssociatedDomain {
+ #[serde(default)]
+ pub scheme: Vec,
+
#[serde(deserialize_with = "deserialize_associated_host")]
pub host: String,
+
+ #[serde(default)]
+ pub path: Vec,
+ #[serde(default, alias = "path-pattern", rename = "pathPattern")]
+ pub path_pattern: Vec,
#[serde(default, alias = "path-prefix", rename = "pathPrefix")]
pub path_prefix: Vec,
+ #[serde(default, alias = "path-suffix", rename = "pathSuffix")]
+ pub path_suffix: Vec,
}
fn deserialize_associated_host<'de, D>(deserializer: D) -> Result