Update channel url query string location and support both formats

This commit is contained in:
Garth Vander Houwen 2024-07-09 18:29:59 -07:00
parent 48220d57ac
commit 5c57d38ee6
2 changed files with 25 additions and 6 deletions

View file

@ -40,11 +40,18 @@ struct MeshtasticAppleApp: App {
if (self.incomingUrl?.absoluteString.lowercased().contains("meshtastic.org/e/#")) != nil {
if let components = self.incomingUrl?.absoluteString.components(separatedBy: "#") {
guard let cs = components.last!.components(separatedBy: "?").first else {
return
}
self.channelSettings = cs
self.addChannels = Bool(self.incomingUrl?["add"] ?? "false") ?? false
if ((self.incomingUrl?.absoluteString.lowercased().contains("?")) != nil) {
guard let cs = components.last!.components(separatedBy: "?").first else {
return
}
self.channelSettings = cs
} else {
guard let cs = components.first else {
return
}
self.channelSettings = cs
}
Logger.services.debug("Add Channel \(self.addChannels)")
}
self.saveChannels = true
@ -60,7 +67,19 @@ struct MeshtasticAppleApp: App {
self.incomingUrl = url
if url.absoluteString.lowercased().contains("meshtastic.org/e/#") {
if let components = self.incomingUrl?.absoluteString.components(separatedBy: "#") {
self.channelSettings = components.last!
self.addChannels = Bool(self.incomingUrl?["add"] ?? "false") ?? false
if ((self.incomingUrl?.absoluteString.lowercased().contains("?")) != nil) {
guard let cs = components.last!.components(separatedBy: "?").first else {
return
}
self.channelSettings = cs
} else {
guard let cs = components.first else {
return
}
self.channelSettings = cs
}
Logger.services.debug("Add Channel \(self.addChannels)")
}
self.saveChannels = true
Logger.mesh.debug("User wants to open a Channel Settings URL: \(self.incomingUrl?.absoluteString ?? "No QR Code Link")")

View file

@ -319,7 +319,7 @@ struct ShareChannels: View {
guard let settingsString = try? channelSet.serializedData().base64EncodedString() else {
return
}
channelsUrl = ("https://meshtastic.org/e/#" + settingsString.base64ToBase64url() + (replaceChannels ? "" : "?add=true"))
channelsUrl = ("https://meshtastic.org/e/\(replaceChannels ? "" : "?add=true")#" + settingsString.base64ToBase64url())
}
}
}