Parent design: meshtastic/design#128
Current Android behavior has confirmed gaps:
- Sharing defaults to Add; the cross-platform default is Replace.
- Add generation marks
?add=true but serializes the original ChannelSet with LoRa configuration. Add payloads must contain no LoRa configuration.
- Add import must append only: it must preserve existing channels/LoRa settings, expose conflicts/capacity, and never silently remove or overwrite an existing channel.
- The share and intake UI need the same Replace/Add terms and consequence summaries. Add a Settings > Channels intake entry point and ensure pasted/shared text can use the same parser/confirmation model where supported.
- QR import failures need a recoverable visible error/retry state. Do not describe normal current-firmware channel/LoRa imports as rebooting.
Acceptance criteria:
- Generated Replace/Add URLs follow the design payload rules and round-trip through parser tests.
- The default share control is Replace.
- Add preserves existing radio configuration and gives clear duplicate/full-capacity feedback.
- Reusable parser/validation covers canonical and legacy forms, add-only payloads, malformed payloads, and all supported channel counts.
- PR evidence covers both modes and states, with hardware limits called out.
Parent design: meshtastic/design#128
Current Android behavior has confirmed gaps:
?add=truebut serializes the original ChannelSet with LoRa configuration. Add payloads must contain no LoRa configuration.Acceptance criteria: