taler-ios

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

commit 3e9cb696756f54b8774b6ed825c504306f6c03ff
parent ce834ef412a23f9d0be22a8056da68aac41d5eb6
Author: Marc Stibane <marc@taler.net>
Date:   Fri, 31 Jul 2026 09:53:58 +0200

trimmedString

Diffstat:
MTalerWallet1/Helper/URL+id+iban.swift | 4++++
MTalerWallet1/Quickjs/QuickDataTask.swift | 2+-
MTalerWallet1/Views/Settings/Exchange/ExchangeListView.swift | 2+-
MTalerWallet1/Views/Sheets/DevExperimentView.swift | 6+++---
MTalerWallet1/Views/Sheets/P2P_Sheets/P2pPayURIView.swift | 2+-
MTalerWallet1/Views/Sheets/P2P_Sheets/P2pReceiveURIView.swift | 2+-
MTalerWallet1/Views/Sheets/Payment/PayTemplateV.swift | 2+-
MTalerWallet1/Views/Sheets/Payment/PaymentView.swift | 4++--
MTalerWallet1/Views/Sheets/QRSheet.swift | 2+-
MTalerWallet1/Views/Sheets/Refund/RefundURIView.swift | 2+-
MTalerWallet1/Views/Sheets/URLSheet.swift | 2+-
MTalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawAcceptDone.swift | 2+-
MTalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawURIView.swift | 2+-
MTalerWallet1/Views/Sheets/WithdrawExchangeV.swift | 2+-
14 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/TalerWallet1/Helper/URL+id+iban.swift b/TalerWallet1/Helper/URL+id+iban.swift @@ -16,6 +16,10 @@ extension URL { self.init(string: "\(string)")! } + var trimmedString: String { + absoluteString.trimmingCharacters(in: .whitespacesAndNewlines) + } + var cyclos: String? { /// "payto://cyclos/" host ["/" fpath] "/" account-id [ "?" opts ] if scheme == "payto", let host = host { diff --git a/TalerWallet1/Quickjs/QuickDataTask.swift b/TalerWallet1/Quickjs/QuickDataTask.swift @@ -96,7 +96,7 @@ class QuickDataTask: NSObject { func run() { if let responseCb, let responseCbCls { let method = self.request.httpMethod ?? "Unknown" - let url = self.request.url?.absoluteString ?? EMPTYSTRING + let url = self.request.url?.trimmedString ?? EMPTYSTRING logger.trace("❓\(self.requestID, privacy: .public) \(method, privacy: .public) \(url, privacy: .public)") dataTask = urlSession.dataTask(with: request) { [self] data, response, error in if let response = response as? HTTPURLResponse { diff --git a/TalerWallet1/Views/Settings/Exchange/ExchangeListView.swift b/TalerWallet1/Views/Settings/Exchange/ExchangeListView.swift @@ -55,7 +55,7 @@ struct ExchangeListView: View { .navigationBarItems(trailing: plusButton) .task { if let newUrl = url { - newExchange = newUrl.absoluteString + newExchange = newUrl.trimmedString showAlert = true url = nil } diff --git a/TalerWallet1/Views/Sheets/DevExperimentView.swift b/TalerWallet1/Views/Sheets/DevExperimentView.swift @@ -26,7 +26,7 @@ struct DevExperimentView: View { private func viewDidLoad() async { symLog.log(".task \(url.absoluteString)") try? await model.setConfig(setTesting: true) - try? await model.devExperimentT(url.absoluteString) + try? await model.devExperimentT(url.trimmedString) finished = true } @@ -34,7 +34,7 @@ struct DevExperimentView: View { if finished { VStack { Spacer() - Text(url.absoluteString) + Text(url.trimmedString) .talerFont(.title2) .padding() Spacer() @@ -45,7 +45,7 @@ struct DevExperimentView: View { Spacer() } } else { - LoadingView(stack: stack.push(), scopeInfo: nil, message: url.absoluteString) + LoadingView(stack: stack.push(), scopeInfo: nil, message: url.trimmedString) .task { await viewDidLoad() } } } diff --git a/TalerWallet1/Views/Sheets/P2P_Sheets/P2pPayURIView.swift b/TalerWallet1/Views/Sheets/P2P_Sheets/P2pPayURIView.swift @@ -30,7 +30,7 @@ struct P2pPayURIView: View { private func viewDidLoad() async { do { symLog.log(".task") - let response = try? await model.preparePeerPullDebit(url.absoluteString) + let response = try? await model.preparePeerPullDebit(url.trimmedString) if let response { controller.removeURL(url) // tx is now saved by wallet-core } diff --git a/TalerWallet1/Views/Sheets/P2P_Sheets/P2pReceiveURIView.swift b/TalerWallet1/Views/Sheets/P2P_Sheets/P2pReceiveURIView.swift @@ -47,7 +47,7 @@ struct P2pReceiveURIView: View { @MainActor private func viewDidLoad() async { symLog.log(".task") - if let ppResponse = try? await model.preparePeerPushCredit(url.absoluteString) { + if let ppResponse = try? await model.preparePeerPushCredit(url.trimmedString) { let baseUrl = ppResponse.exchangeBaseUrl exchange = try? await model.getExchangeByUrl(url: baseUrl) await controller.checkCurrencyInfo(for: baseUrl, model: model) diff --git a/TalerWallet1/Views/Sheets/Payment/PayTemplateV.swift b/TalerWallet1/Views/Sheets/Payment/PayTemplateV.swift @@ -62,7 +62,7 @@ struct PayTemplateV: View { @MainActor private func viewDidLoad() async { - if let response = try? await model.checkPayForTemplate(url.absoluteString) { + if let response = try? await model.checkPayForTemplate(url.trimmedString) { let details = response.templateDetails let defaults = details.editableDefaults // might be nil, or its fields might be nil // TODO: let the user choose a currency from supportedCurrencies[] diff --git a/TalerWallet1/Views/Sheets/Payment/PaymentView.swift b/TalerWallet1/Views/Sheets/Payment/PaymentView.swift @@ -46,7 +46,7 @@ struct PaymentView: View, Sendable { private func viewDidLoad() async { // symLog.log(".task") if template { - if let templateResponse = try? await model.preparePayForTemplate(url.absoluteString, + if let templateResponse = try? await model.preparePayForTemplate(url.trimmedString, amount: amountIsEditable ? amountToTransfer : nil, summary: summaryIsEditable ? summary : nil) { txId = templateResponse.transactionId @@ -55,7 +55,7 @@ struct PaymentView: View, Sendable { // controller.updateAmount(raw, forSaved: url) } } else { - if let payResponse = try? await model.preparePayForUri(url.absoluteString) { + if let payResponse = try? await model.preparePayForUri(url.trimmedString) { txId = payResponse.transactionId // let raw = payResponse.amountRaw // controller.updateAmount(raw, forSaved: url) // TODO: update scanned URL diff --git a/TalerWallet1/Views/Sheets/QRSheet.swift b/TalerWallet1/Views/Sheets/QRSheet.swift @@ -40,7 +40,7 @@ struct QRSheet: View { // TODO: error logging? ErrorView(stack.push(), title: String(localized: "Scanned QR is no talerURI"), - message: scannedURL.absoluteString, + message: scannedURL.trimmedString, copyable: true) { scannedSomething = false dismissTop(stack.push()) diff --git a/TalerWallet1/Views/Sheets/Refund/RefundURIView.swift b/TalerWallet1/Views/Sheets/Refund/RefundURIView.swift @@ -25,7 +25,7 @@ struct RefundURIView: View { @MainActor private func viewDidLoad() async { symLog.log(".task") - if let result = try? await model.startRefundForUri(url: url.absoluteString) { + if let result = try? await model.startRefundForUri(url: url.trimmedString) { refundTransactionId = result // transaction = try? await model.getTransactionById(result) } diff --git a/TalerWallet1/Views/Sheets/URLSheet.swift b/TalerWallet1/Views/Sheets/URLSheet.swift @@ -86,7 +86,7 @@ struct URLSheet: View { DevExperimentView(stack: stack.push(), url: passedURL) #endif default: // TODO: Error view - let unknown = String(localized: "Unknown command: \(passedURL.absoluteString)") + let unknown = String(localized: "Unknown command: \(passedURL.trimmedString)") VStack { let _ = symLog.log("Unknown command❗️ \(passedURL.absoluteString)") Text(controller.messageForSheet ?? unknown) diff --git a/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawAcceptDone.swift b/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawAcceptDone.swift @@ -30,7 +30,7 @@ struct WithdrawAcceptDone: View { if let exchangeBaseUrl { // TODO: restrictAge if let result = try? await model.acceptBankIntWithdrawal(exchangeBaseUrl, - withdrawURL: url.absoluteString, + withdrawURL: url.trimmedString, amount: amountToTransfer, restrictAge: nil ) { diff --git a/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawURIView.swift b/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawURIView.swift @@ -102,7 +102,7 @@ struct WithdrawURIView: View { private func viewDidLoad() async { symLog.log(".task") do { - let response = try await model.prepareBankIntegratedWithdrawal(url.absoluteString) + let response = try await model.prepareBankIntegratedWithdrawal(url.trimmedString) let txId = response.transactionId let uriInfoResponse = response.info let amount = uriInfoResponse.amount diff --git a/TalerWallet1/Views/Sheets/WithdrawExchangeV.swift b/TalerWallet1/Views/Sheets/WithdrawExchangeV.swift @@ -28,7 +28,7 @@ struct WithdrawExchangeV: View { private func viewDidLoad() async { if exchange == nil { symLog.log(".task") - if let withdrawExchange = try? await model.prepareWithdrawExchange(url.absoluteString) { + if let withdrawExchange = try? await model.prepareWithdrawExchange(url.trimmedString) { let baseUrl = withdrawExchange.exchangeBaseUrl controller.updateBase(baseUrl, forSaved: url) symLog.log("getExchangeByUrl(\(baseUrl))")