taler-ios

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

commit a26dfcacc9bc273df3c0da1b84aee4dc2daaa7c1
parent 4b5d86e5dc68a49d7137d13064374692e3f3957a
Author: Marc Stibane <marc@taler.net>
Date:   Fri, 10 Jul 2026 09:20:06 +0200

persist developDelay

Diffstat:
MTalerWallet1/Backend/WalletCore.swift | 1-
MTalerWallet1/Controllers/Controller.swift | 12+++++++-----
MTalerWallet1/Controllers/PublicConstants.swift | 5+++++
MTalerWallet1/Views/Settings/DebugSettingsView.swift | 28++++++++++++++--------------
4 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/TalerWallet1/Backend/WalletCore.swift b/TalerWallet1/Backend/WalletCore.swift @@ -33,7 +33,6 @@ class WalletCore: QuickjsMessageHandler { var delegate: WalletBackendDelegate? var versionInfo: VersionInfo? // shown in SettingsView - var developDelay: Bool? // delay wallet-core after each network call var isObserving: Int var isLogging: Bool var logTransactions: Bool diff --git a/TalerWallet1/Controllers/Controller.swift b/TalerWallet1/Controllers/Controller.swift @@ -150,6 +150,7 @@ class Controller: ObservableObject { @AppStorage("developerMode") var developerMode: Bool = false #endif @AppStorage("deviceTokenAPNs") var deviceTokenAPNs: String? + @AppStorage("developDelay") var developDelay: Bool = false let hapticCapability = CHHapticEngine.capabilitiesForHardware() let logger = Logger(subsystem: "net.taler.gnu", category: "Controller") let player = AVQueuePlayer() @@ -536,12 +537,13 @@ class Controller: ObservableObject { walletCore.versionInfo = versionInfo if developerMode { try await model.setConfig(setTesting: true) - if walletCore.developDelay == true { - try? await model.devExperimentT( - "taler://dev-experiment/start-tc?delay_resp=5000") + if developDelay == true { + try await model.devExperimentT( + "taler://dev-experiment/start-tc?delay_resp=\(TCDELAY)") } -// try? await model.devExperimentT("taler://dev-experiment/default-exchange-demo?val=1") - try? await model.devExperimentT( +// try await model.devExperimentT("taler://dev-experiment/start-tc?fake_500=0.7") +// try await model.devExperimentT("taler://dev-experiment/default-exchange-demo?val=1") + try await model.devExperimentT( "taler://dev-experiment/demo-shortcuts?val=KUDOS:4,KUDOS:8,KUDOS:16,KUDOS:32") } defaultExchanges = await model.getDefaultExchanges(stage: stage) diff --git a/TalerWallet1/Controllers/PublicConstants.swift b/TalerWallet1/Controllers/PublicConstants.swift @@ -19,6 +19,11 @@ let TALER_LOGO_QR = "taler-logo-qr" let EXCHANGE_LOGO = "Exchange-logo-blue" let SWISS_QR = "swiss_qr" +#if DEBUG +public let TCDELAY = 12000 +#else +public let TCDELAY = 5000 // 5 seconds delay after each network call +#endif public let INVISIBLE = 0.001 public let MAXEXCHANGES = 1000 // per currency public let CHF_4217 = "CHF" // ISO-4217 Swiss Francs diff --git a/TalerWallet1/Views/Settings/DebugSettingsView.swift b/TalerWallet1/Views/Settings/DebugSettingsView.swift @@ -57,10 +57,9 @@ struct DebugSettingsView: View { @State private var listID = UUID() func setDelay(_ doDelay: Bool, for walletCore: WalletCore) async { - walletCore.developDelay = doDelay symLog.log(doDelay ? "wallet-core delaying by 5 seconds" : "wallet-core stop delaying") - let delayTime = doDelay ? 5000 : 0 + let delayTime = doDelay ? TCDELAY : 0 try? await model.devExperimentT("taler://dev-experiment/start-tc?delay_resp=\(delayTime)") } @@ -77,9 +76,9 @@ struct DebugSettingsView: View { withAnimation(Animation.linear.delay(0.8)) { showDevelopItems = developerMode } Task { symLog.log((newVal ? "enabling" : "disabling") + " applyDevExperiment") - try await model.setConfig(setTesting: newVal) - if newVal && walletCore.developDelay == true { - try await setDelay(true, for: walletCore) + try? await model.setConfig(setTesting: newVal) + if newVal && developDelay == true { + await setDelay(true, for: walletCore) } } } @@ -111,9 +110,19 @@ struct DebugSettingsView: View { consoleManager.clear() } } + SettingsToggle(name: String("Set 5 seconds delay"), + value: $developDelay.onChange({ delay in + Task { + try await setDelay(delay, for: walletCore) + } + }), + id1: "delay", + description: String("After each network call")) + .id("delay") SettingsToggle(name: String(localized: "Show view sizes"), value: $debugViews, id1: "debugViews", description: String(localized: "Debug view layout and flickering")) + .id("debugViews") #if DEBUG let banks = [//"stage.taler-ops.ch", <= never has a bank! // "glstest.taler.net", @@ -170,15 +179,6 @@ struct DebugSettingsView: View { .buttonStyle(.bordered) .disabled(withDrawDisabled) }.id("head1withdraw") - SettingsToggle(name: String("Set 5 seconds delay"), - value: $developDelay.onChange({ delay in - Task { - try await setDelay(delay, for: walletCore) - } - }), - id1: "delay", - description: String("After each network call")) - .id("delay") #if DEBUG SettingsItem(name: String("Run Dev Experiment Refresh"), id1: "applyDevExperiment",