taler-ios

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

commit 9e1c7b8f7dfcf7acbf46c42052e6eaeb927c5cec
parent 4246c7d026046524c17de63bc6ac9066413b6ee5
Author: Marc Stibane <marc@taler.net>
Date:   Sun, 14 Jun 2026 22:06:35 +0200

Currency info in summary section

Diffstat:
MTalerWallet1/Views/Sheets/Payment/PaymentView.swift | 7+------
MTalerWallet1/Views/Transactions/ThreeAmountsSection.swift | 17+++++++++++++++++
MTalerWallet1/Views/Transactions/TransactionSummaryList.swift | 1-
3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/TalerWallet1/Views/Sheets/Payment/PaymentView.swift b/TalerWallet1/Views/Sheets/Payment/PaymentView.swift @@ -59,7 +59,7 @@ struct PaymentView: View, Sendable { if let payResponse = try? await model.preparePayForUri(url.absoluteString) { txId = payResponse.transactionId // let raw = payResponse.amountRaw -// controller.updateAmount(raw, forSaved: url) +// controller.updateAmount(raw, forSaved: url) // TODO: update scanned URL } } } @@ -209,7 +209,6 @@ struct PaySafeArea: View, Sendable { let symLog: SymLogV? let stack: CallStack let terms: MerchantContractTerms - @Binding var currencyInfo: CurrencyInfo let amountString: String let amountA11y: String @Binding var payNow: Bool @@ -256,7 +255,6 @@ struct PaySafeArea: View, Sendable { } var body: some View { - let currency = currencyInfo.currency let timeToPay = timeToPay(terms) let showTime = timeToPay > 0 && timeToPay < 300 let view = VStack { @@ -266,9 +264,6 @@ struct PaySafeArea: View, Sendable { } else { let _ = symLog?.log("\(timeToPay) not shown") } - Text("Payment is made in \(currency)") - .talerFont(.callout) - .padding(.top, 4) Button("Pay \(amountString) now") { payNow = true } .accessibilityLabel(Text("Pay \(amountA11y) now", comment: "a11y")) .buttonStyle(TalerButtonStyle(type: .prominent)) diff --git a/TalerWallet1/Views/Transactions/ThreeAmountsSection.swift b/TalerWallet1/Views/Transactions/ThreeAmountsSection.swift @@ -113,11 +113,13 @@ struct ThreeAmountsSection: View { let summary: String? let products: [Product]? + @EnvironmentObject private var controller: Controller @Environment(\.colorScheme) private var colorScheme @Environment(\.colorSchemeContrast) private var colorSchemeContrast @AppStorage("minimalistic") var minimalistic: Bool = false @State private var productImages: [ProductImage] = [] + @State private var currencyInfo: CurrencyInfo = CurrencyInfo.zero(UNKNOWN) @MainActor private func viewDidLoad() async { @@ -131,6 +133,9 @@ struct ThreeAmountsSection: View { } } productImages = temp + if let scope { + currencyInfo = controller.info(for: scope) ?? CurrencyInfo.zero(UNKNOWN) + } } @ViewBuilder @@ -159,6 +164,7 @@ struct ThreeAmountsSection: View { } var body: some View { + let currency = currencyInfo.currency let labelColor = WalletColors().labelColor let foreColor = pending ? WalletColors().pendingColor(incoming) : WalletColors().transactionColor(incoming) @@ -172,6 +178,12 @@ struct ThreeAmountsSection: View { .padding(.bottom) } } + + Text(pending ? "Payment will be made in \(currency)" + : "Payment was made in \(currency)") + .talerFont(.callout) + .padding(.top, 4) + AmountRowV(stack: stack.push(), title: minimalistic ? topAbbrev : topTitle, amount: topAmount, @@ -231,6 +243,11 @@ struct ThreeAmountsSection: View { } } .task { await viewDidLoad() } + .onChange(of: scope) { newVal in + if let newVal { + currencyInfo = controller.info(for: newVal) ?? CurrencyInfo.zero(UNKNOWN) + } + } } } // MARK: - diff --git a/TalerWallet1/Views/Transactions/TransactionSummaryList.swift b/TalerWallet1/Views/Transactions/TransactionSummaryList.swift @@ -285,7 +285,6 @@ struct TransactionSummaryList: View { PaySafeArea(symLog: symLog, stack: stack.push(), terms: terms, - currencyInfo: $currencyInfo, amountString: formatted.0, amountA11y: formatted.1, payNow: $payNow)