commit 215bfa29f2919044d01b5b817bec2c22f7a8f6c1
parent ec81f4be1f9ba9ffc9c0a9b808459d3f8c6ac01a
Author: Marc Stibane <marc@taler.net>
Date: Sat, 14 Sep 2024 15:35:19 +0200
Share Payto plus IBAN, receiver, amount, subject
Diffstat:
4 files changed, 37 insertions(+), 34 deletions(-)
diff --git a/TalerWallet1/Views/HelperViews/CopyShare.swift b/TalerWallet1/Views/HelperViews/CopyShare.swift
@@ -65,7 +65,7 @@ struct ShareButton: View {
func shareAction() -> Void {
symLog.log(textToShare)
controller.hapticFeedback(.soft)
- ShareSheet.shareSheet(url: textToShare)
+ ShareSheet.shareSheet(textToShare: textToShare)
}
var body: some View {
diff --git a/TalerWallet1/Views/Sheets/ShareSheet.swift b/TalerWallet1/Views/Sheets/ShareSheet.swift
@@ -1,7 +1,10 @@
/*
- * This file is part of GNU Taler, ©2022-23 Taler Systems S.A.
+ * This file is part of GNU Taler, ©2022-24 Taler Systems S.A.
* See LICENSE.md
*/
+/**
+ * @author Marc Stibane
+ */
import Foundation
import UIKit
import SymLog
@@ -19,11 +22,9 @@ import SymLog
public class ShareSheet: ObservableObject {
- private let symLog = SymLogC()
- @MainActor static func shareSheet(url: String) {
- let url = URL(string: url)
- let activityView = UIActivityViewController(activityItems: [url!], applicationActivities: nil)
+ @MainActor static func shareSheet(textToShare: String) {
+ let activityView = UIActivityViewController(activityItems: [textToShare], applicationActivities: nil)
let allScenes = UIApplication.shared.connectedScenes
let scene = allScenes.first { $0.activationState == .foregroundActive }
@@ -34,7 +35,5 @@ public class ShareSheet: ObservableObject {
}
init() {
- symLog.log("init")
-
}
}
diff --git a/TalerWallet1/Views/Transactions/ManualDetailsV.swift b/TalerWallet1/Views/Transactions/ManualDetailsV.swift
@@ -175,9 +175,14 @@ struct ManualDetailsV: View {
let xTaler = payURL?.xTaler ??
// payURL?.host() ??
String(localized: "unknown payment method")
+ let receiverStr = (queryParameters["receiver-name"] ?? EMPTYSTRING)
+ .replacingOccurrences(of: "+", with: " ")
+// let amountStr = queryParameters["amount"] ?? EMPTYSTRING
+// let messageStr = queryParameters["message"] ?? EMPTYSTRING
+// let senderStr = queryParameters["sender-name"] ?? EMPTYSTRING
let wireDetails = ManualDetailsWireV(stack: stack.push(),
details: details,
- queryParameters: queryParameters,
+ receiverStr: receiverStr,
iban: iban,
xTaler: xTaler,
amountStr: amountStr,
@@ -197,20 +202,24 @@ struct ManualDetailsV: View {
: "Wire transfer QR codes")
.talerFont(.title3)
}
- .listRowSeparator(.visible)
+ .listRowSeparator(.automatic)
}
- Text(minimalistic ? "**Alternative:** Use this PayTo-Link:"
+ if let iban {
+ Text(minimalistic ? "**Alternative:** Use this PayTo-Link:"
: "**Alternative:** If your bank already supports PayTo, you can use this PayTo-Link instead:")
- .multilineTextAlignment(.leading)
- .padding(.top)
- .listRowSeparator(.hidden)
- let title = String(localized: "Share the PayTo URL", comment: "VoiceOver")
- let minTitle = String(localized: "Share PayTo", comment: "mini")
- ShareButton(textToShare: payto, title: minimalistic ? minTitle : title)
- .frame(maxWidth: .infinity, alignment: .center)
- .accessibilityLabel(Text(title))
- .disabled(false)
- .listRowSeparator(.hidden)
+ .multilineTextAlignment(.leading)
+ .padding(.top)
+ .listRowSeparator(.hidden)
+ let title = String(localized: "Share the PayTo URL", comment: "VoiceOver")
+ let minTitle = String(localized: "Share PayTo", comment: "mini")
+ let textToShare = String("\(payto)\n\nIBAN: \(iban)\nReceiver: \(receiverStr)\nAmount: \(amountStr)\nSubject: \(details.reservePub)")
+ let _ = print(textToShare)
+ ShareButton(textToShare: textToShare, title: minimalistic ? minTitle : title)
+ .frame(maxWidth: .infinity, alignment: .center)
+ .accessibilityLabel(Text(title))
+ .disabled(false)
+ .listRowSeparator(.hidden)
+ }
}.id(listID)
.talerFont(.body)
.task {
diff --git a/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift b/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift
@@ -48,7 +48,7 @@ struct TransferRestrictionsV: View {
struct ManualDetailsWireV: View {
let stack: CallStack
let details : WithdrawalDetails
- let queryParameters: [String:String]
+ let receiverStr: String
let iban: String?
let xTaler: String
let amountStr: String
@@ -60,11 +60,6 @@ struct ManualDetailsWireV: View {
var body: some View {
List {
- let receiverStr = (queryParameters["receiver-name"] ?? EMPTYSTRING).replacingOccurrences(of: "+", with: " ")
-// let amountStr = queryParameters["amount"] ?? EMPTYSTRING
-// let messageStr = queryParameters["message"] ?? EMPTYSTRING
-// let senderStr = queryParameters["sender-name"] ?? EMPTYSTRING
-
let cryptocode = HStack {
Text(details.reservePub)
.monospacedDigit()
@@ -185,13 +180,13 @@ struct ManualDetailsWireV: View {
// confirmed: false)
// List {
// ManualDetailsWireV(stack: CallStack("Preview"),
-// details: details,
-// queryParameters: <#T##[String : String]#>,
-// iban: <#T##String?#>,
-// xTaler: <#T##String#>,
-// amountStr: <#T##String#>,
-// obtainStr: <#T##String#>,
-// account: <#T##WithdrawalExchangeAccountDetails#>)
+// details: details,
+// receiverStr: <#T##String#>,
+// iban: <#T##String?#>,
+// xTaler: <#T##String#>,
+// amountStr: <#T##String#>,
+// obtainStr: <#T##String#>,
+// account: <#T##WithdrawalExchangeAccountDetails#>)
// }
// }
//}