taler-ios

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

commit 989f6f73f878df6530cc7f6008c598323f45af38
parent fcc65d25ab2af027c02e1367ed533b7d2e151a93
Author: Marc Stibane <marc@taler.net>
Date:   Wed, 25 Jun 2025 00:20:41 +0200

updateExchange on pull_to_refresh

Diffstat:
MTalerWallet1/Model/Model+Exchange.swift | 11+++++------
MTalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawTOSView.swift | 6+++++-
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/TalerWallet1/Model/Model+Exchange.swift b/TalerWallet1/Model/Model+Exchange.swift @@ -144,12 +144,14 @@ fileprivate struct GetExchangeByUrl: WalletBackendFormattedRequest { fileprivate struct UpdateExchange: WalletBackendFormattedRequest { func operation() -> String { "updateExchangeEntry" } // func args() -> Args { Args(scopeInfo: scopeInfo) } - func args() -> Args { Args(exchangeBaseUrl: exchangeBaseUrl) } + func args() -> Args { Args(exchangeBaseUrl: exchangeBaseUrl, force: force) } // var scopeInfo: ScopeInfo var exchangeBaseUrl: String + var force: Bool struct Args: Encodable { var exchangeBaseUrl: String + var force: Bool } struct Response: Decodable {} // no result - getting no error back means success } @@ -264,13 +266,10 @@ extension WalletModel { } /// ask wallet-core to update an existing exchange by querying it for denominations, fees, and scoped currency info -// func updateExchange(scopeInfo: ScopeInfo) // func updateExchange(scopeInfo: ScopeInfo, viewHandles: Bool = false) - nonisolated func updateExchange4711(exchangeBaseUrl: String, viewHandles: Bool = false) + nonisolated func updateExchange(exchangeBaseUrl: String, force: Bool = false, viewHandles: Bool = false) async throws { -// let request = UpdateExchange(scopeInfo: scopeInfo) - let request = UpdateExchange(exchangeBaseUrl: exchangeBaseUrl) -// logger.info("updating exchange for: \(scopeInfo.currency, privacy: .public)") + let request = UpdateExchange(exchangeBaseUrl: exchangeBaseUrl, force: force) logger.info("updating exchange: \(exchangeBaseUrl, privacy: .public)") _ = try await sendRequest(request, viewHandles: viewHandles) } diff --git a/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawTOSView.swift b/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawTOSView.swift @@ -55,12 +55,16 @@ struct WithdrawTOSView: View { var body: some View { let languageCode = Locale.preferredLanguageCode // let languageName = Locale.current.localizedString(forLanguageCode: languageCode) - if let exchangeTOS { + if let exchangeTOS, let exchangeBaseUrl { Content(symLog: symLog, tos: exchangeTOS, myListStyle: $myListStyle, language: languageCode, languageAction: loadToS) { Task { await viewDidLoad() } } .navigationTitle(navTitle) + .refreshable { + try? await model.updateExchange(exchangeBaseUrl: exchangeBaseUrl, force: true) + await loadToS(languageCode) + } .onAppear() { if viewID > SHEET_WITHDRAWAL { DebugViewC.shared.setSheetID(SHEET_WITHDRAW_TOS)