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:
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)