commit f9aceb3fa5f02b033ce0377c21ab596306c69da0
parent 8865449ba53cbbe409257222745013871f0f05e7
Author: Marc Stibane <marc@taler.net>
Date: Tue, 29 Apr 2025 16:08:25 +0200
devExperiment for GNU Taler
Diffstat:
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 {