taler-ios

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

commit f9aceb3fa5f02b033ce0377c21ab596306c69da0
parent 8865449ba53cbbe409257222745013871f0f05e7
Author: Marc Stibane <marc@taler.net>
Date:   Tue, 29 Apr 2025 16:08:25 +0200

devExperiment for GNU Taler

Diffstat:
MTalerWallet1/Controllers/Controller.swift | 6++++++
ATalerWallet1/Views/Sheets/DevExperimentView.swift | 35+++++++++++++++++++++++++++++++++++
MTalerWallet1/Views/Sheets/URLSheet.swift | 5+++++
3 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/TalerWallet1/Controllers/Controller.swift b/TalerWallet1/Controllers/Controller.swift @@ -33,6 +33,9 @@ enum UrlCommand { case payPush case payTemplate case refund +#if GNU_TALER + case devExperiment +#endif var isOutgoing: Bool { switch self { @@ -358,6 +361,9 @@ extension Controller { case "pay-push": return .payPush case "pay-template": return .payTemplate case "refund": return .refund +#if GNU_TALER + case "dev-experiment": return .devExperiment +#endif default: self.logger.error("❗️unknown command taler://\(command)") } diff --git a/TalerWallet1/Views/Sheets/DevExperimentView.swift b/TalerWallet1/Views/Sheets/DevExperimentView.swift @@ -0,0 +1,35 @@ +/* + * This file is part of GNU Taler, ©2022-25 Taler Systems S.A. + * See LICENSE.md + */ +/** + * @author Marc Stibane + */ +import SwiftUI +import SymLog +import taler_swift + + +#if GNU_TALER +struct DevExperimentView: View { + private let symLog = SymLogV(0) + let stack: CallStack + let url: URL + + @EnvironmentObject private var model: WalletModel + @EnvironmentObject private var controller: Controller + + + @MainActor + private func viewDidLoad() async { + symLog.log(".task \(url.absoluteString)") + try? await model.setConfig(setTesting: true) + try? await model.devExperimentT(talerUri: url.absoluteString) + } + + var body: some View { + LoadingView(stack: stack.push(), scopeInfo: nil, message: url.host) + .task { await viewDidLoad() } + } +} +#endif diff --git a/TalerWallet1/Views/Sheets/URLSheet.swift b/TalerWallet1/Views/Sheets/URLSheet.swift @@ -16,6 +16,7 @@ struct URLSheet: View { @Binding var urlToOpen: URL? @EnvironmentObject private var controller: Controller + @EnvironmentObject private var model: WalletModel @AppStorage("shouldShowWarning") var shouldShowWarning: Bool = true @State private var amountToTransfer = Amount.zero(currency: EMPTYSTRING) @@ -60,6 +61,10 @@ struct URLSheet: View { PayTemplateV(stack: stack.push(), url: passedURL) case .refund: RefundURIView(stack: stack.push(), url: passedURL) +#if GNU_TALER + case .devExperiment: + DevExperimentView(stack: stack.push(), url: passedURL) +#endif default: // TODO: Error view let unknown = String(localized: "Unknown command") VStack {