The incoming OS intent URI (e.g. "meshtastic://meshtastic/share?message=hello")
diff --git a/api/core/navigation/org.meshtastic.core.navigation/-deep-link-router/index.html b/api/core/navigation/org.meshtastic.core.navigation/-deep-link-router/index.html index 8ad1200acc..4207af18eb 100644 --- a/api/core/navigation/org.meshtastic.core.navigation/-deep-link-router/index.html +++ b/api/core/navigation/org.meshtastic.core.navigation/-deep-link-router/index.html @@ -93,7 +93,7 @@
Type-safe deep link parser for KMP Navigation 3.
Maps an incoming OS intent URI to a list of NavKeys representing the target backstack. This ensures that when a user deep links into a detail view, the logical "up" hierarchy is synthesized and correctly populated in the user-owned NavBackStack list.
Supports both legacy query-parameter URIs and modern RESTful path patterns:
/nodes -> List of all nodes
/nodes/{destNum} -> Node details
/nodes/{destNum}/{metric} -> Specific node metric (e.g., /nodes/1234/device-metrics)
/messages -> Conversation list
/messages/{contactKey} -> Specific conversation
/settings -> Settings root
/settings/{destNum}/{page} -> Specific settings page for a node
/wifi-provision -> WiFi provisioning screen
/wifi-provision?address={mac} -> WiFi provisioning targeting a specific device MAC address
/connections?address={prefixedAddress} -> Connections screen, auto-connecting to a prefixed device address (e.g. t192.168.1.1:4403 for TCP, xAA:BB:CC:DD:EE:FF for BLE) — lets external tooling trigger a connection. address=n disconnects instead of connecting.
Deep-link router for KMP Navigation 3.
Maps an incoming OS intent URI to the back stack it should open, so a link into a detail view lands with its logical "up" hierarchy already populated. Every supported link is a UriDeepLinkMatcher pattern whose placeholders decode straight into the target route's fields, wrapped with withBackStack to synthesize the parents.
Path literals match case-insensitively. The scheme and host are not part of the contract: meshtastic://meshtastic and http(s)://meshtastic.org links are routed identically, because the OS intent-filter already decides which hosts reach the app.
Supports both legacy query-parameter URIs and modern RESTful path patterns:
/nodes -> List of all nodes
/nodes/{destNum} -> Node details
/nodes/{destNum}/{metric} -> Specific node metric (e.g., /nodes/1234/device-metrics)
/messages -> Conversation list
/messages/{contactKey} -> Specific conversation
/settings -> Settings root
/settings/{destNum}/{page} -> Specific settings page for a node
/wifi-provision -> WiFi provisioning screen
/wifi-provision?address={mac} -> WiFi provisioning targeting a specific device MAC address
/connections?address={prefixedAddress} -> Connections screen, auto-connecting to a prefixed device address (e.g. t192.168.1.1:4403 for TCP, xAA:BB:CC:DD:EE:FF for BLE) — lets external tooling trigger a connection. address=n disconnects instead of connecting.
Canonical set of top-level path segments this router dispatches on. route refuses segments outside this set, so a new when branch stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an android:pathPrefix in the https App Links intent-filter in androidApp/src/main/AndroidManifest.xml — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.
Canonical set of top-level path segments this router dispatches on. route refuses segments outside this set, so a new pattern stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an android:pathPrefix in the https App Links intent-filter in androidApp/src/main/AndroidManifest.xml — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.
Synthesizes a backstack list from an incoming Meshtastic URI.
A list of strongly-typed NavKeys representing the backstack, or null if the URI is not recognized.
The incoming OS intent URI (e.g. "meshtastic://meshtastic/share?message=hello")
Synthesizes a backstack list from an incoming Meshtastic URI.
A list of strongly-typed NavKeys representing the backstack, or null if the URI is not recognized.
The incoming OS intent URI (e.g. "meshtastic://meshtastic/share?message=hello")
Canonical set of top-level path segments this router dispatches on. route refuses segments outside this set, so a new when branch stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an android:pathPrefix in the https App Links intent-filter in androidApp/src/main/AndroidManifest.xml — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.
Canonical set of top-level path segments this router dispatches on. route refuses segments outside this set, so a new pattern stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an android:pathPrefix in the https App Links intent-filter in androidApp/src/main/AndroidManifest.xml — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.
Type-safe deep link parser for KMP Navigation 3.
Deep-link router for KMP Navigation 3.
A comprehensive and flexible dialog component for the Meshtastic application.
Modifier for the dialog.
The title text of the dialog.
The title string resource of the dialog.
Optional plain text message.
Optional string resource message.
Optional color for the plain text message; Color.Unspecified uses the default text color.
Optional HTML formatted message.
Optional leading icon.
Optional custom composable content for the body.
Text for the confirmation button.
String resource for the confirmation button.
Callback for the confirmation button.
Text for the dismiss button.
String resource for the dismiss button.
Callback for when the dialog is dismissed or the dismiss button is clicked.
If provided, displays a list of buttons instead of the standard confirm/dismiss actions.
Whether the dialog can be dismissed by clicking outside or pressing back.
A comprehensive and flexible dialog component for the Meshtastic application.
Modifier for the dialog.
The title text of the dialog.
The title string resource of the dialog.
Optional plain text message.
Optional string resource message.
Optional color for the plain text message; Color.Unspecified uses the default text color.
Optional HTML formatted message.
Optional leading icon.
Optional custom composable content for the body.
Text for the confirmation button.
String resource for the confirmation button.
Callback for the confirmation button.
Text for the dismiss button.
String resource for the dismiss button.
Callback for when the dialog is dismissed or the dismiss button is clicked.
If provided, displays a list of buttons instead of the standard confirm/dismiss actions.
Whether the dialog can be dismissed by clicking outside or pressing back.
Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (ButtonDefaults.IconSize, ButtonDefaults.IconSpacing, and the variant-appropriate *WithIconContentPadding) so every scan / add / empty-state affordance renders identically.
accessibility label for the leading icon. Defaults to null because the visible text usually describes the action; override when the icon carries information the text does not.
Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (ButtonDefaults.IconSize, ButtonDefaults.IconSpacing, and the variant-appropriate *WithIconContentPadding) so every scan / add / empty-state affordance renders identically.
accessibility label for the leading icon. Defaults to null because the visible text usually describes the action; override when the icon carries information the text does not.
Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (ButtonDefaults.IconSize, ButtonDefaults.IconSpacing, and the variant-appropriate *WithIconContentPadding) so every scan / add / empty-state affordance renders identically.
Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (ButtonDefaults.IconSize, ButtonDefaults.IconSpacing, and the variant-appropriate *WithIconContentPadding) so every scan / add / empty-state affordance renders identically.