taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit 9237fc923a5cb9f3457c21817e4c4ad1e0d739ed
parent aaedd0b804ee92e4fb4cb858e3bb5882734fc3e4
Author: Marc Stibane <marc@taler.net>
Date:   Wed,  6 Aug 2025 07:33:18 +0200

fix PayTo parsing, check for zero length

Diffstat:
MTalerWallet1/Model/Transaction.swift | 19+++++++++++--------
MTalerWallet1/Views/Transactions/ManualDetailsWireV.swift | 8++++++--
2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/TalerWallet1/Model/Transaction.swift b/TalerWallet1/Model/Transaction.swift @@ -151,6 +151,13 @@ struct PayTo { // receiver-name=Taler+Operations+AG&receiver-postal-cod var amountStr: String? var messageStr: String? + func param(key: String, from params: [String:String]) -> String? { + if let param = params[key] { + return param.replacingOccurrences(of: "+", with: SPACE) + } + return nil + } + init(_ string: String) { let payURL = URL(string: string) if let queryParameters = payURL?.queryParameters { @@ -158,14 +165,10 @@ struct PayTo { // receiver-name=Taler+Operations+AG&receiver-postal-cod xTaler = payURL?.xTaler ?? // payURL?.host() ?? String(localized: "unknown payment method") - sender = queryParameters["sender-name"] ?? EMPTYSTRING - .replacingOccurrences(of: "+", with: SPACE) - receiver = (queryParameters["receiver-name"] ?? EMPTYSTRING) - .replacingOccurrences(of: "+", with: SPACE) - postalCode = (queryParameters["receiver-postal-code"] ?? EMPTYSTRING) - .replacingOccurrences(of: "+", with: SPACE) - town = (queryParameters["receiver-town"] ?? EMPTYSTRING) - .replacingOccurrences(of: "+", with: SPACE) + sender = param(key: "sender-name", from: queryParameters) + receiver = param(key: "receiver-name", from: queryParameters) + postalCode = param(key: "receiver-postal-code", from: queryParameters) + town = param(key: "receiver-town", from: queryParameters) amountStr = queryParameters["amount"] ?? EMPTYSTRING messageStr = queryParameters["message"] ?? EMPTYSTRING } diff --git a/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift b/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift @@ -249,10 +249,14 @@ struct ManualDetailsWireV: View { step2i payeeCode if let receiverZip { - payeeZip() + if !receiverZip.isEmpty { + payeeZip() + } } if let receiverTown { - payeeTown() + if !receiverTown.isEmpty { + payeeTown() + } } ibanCode } else {