taler-ios

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

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:
MTalerWallet1/Views/HelperViews/CopyShare.swift | 2+-
MTalerWallet1/Views/Sheets/ShareSheet.swift | 13++++++-------
MTalerWallet1/Views/Transactions/ManualDetailsV.swift | 35++++++++++++++++++++++-------------
MTalerWallet1/Views/Transactions/ManualDetailsWireV.swift | 21++++++++-------------
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#>) // } // } //}