diff options
-rw-r--r-- | TalerWallet.xcodeproj/project.pbxproj | 12 | ||||
-rw-r--r-- | TalerWallet1/Views/Peer2peer/PaymentPurpose.swift | 12 | ||||
-rw-r--r-- | TalerWallet1/Views/Peer2peer/SendDoneV.swift (renamed from TalerWallet1/Views/Peer2peer/SendDone.swift) | 35 | ||||
-rw-r--r-- | TalerWallet1/Views/Peer2peer/SendPurpose.swift | 13 |
4 files changed, 42 insertions, 30 deletions
diff --git a/TalerWallet.xcodeproj/project.pbxproj b/TalerWallet.xcodeproj/project.pbxproj index 9ca384c..a521fc8 100644 --- a/TalerWallet.xcodeproj/project.pbxproj +++ b/TalerWallet.xcodeproj/project.pbxproj @@ -62,7 +62,7 @@ 4E3EAE422A990778009F1BE8 /* KeyboardResponder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EAD117529F672FA008EDD0B /* KeyboardResponder.swift */; }; 4E3EAE432A990778009F1BE8 /* TransactionRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB095302989CBFE0043A8A1 /* TransactionRowView.swift */; }; 4E3EAE442A990778009F1BE8 /* PublicConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EA1ABBD29A3833A008821EA /* PublicConstants.swift */; }; - 4E3EAE452A990778009F1BE8 /* SendDone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB3136029FEE79B007D68BC /* SendDone.swift */; }; + 4E3EAE452A990778009F1BE8 /* SendDoneV.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB3136029FEE79B007D68BC /* SendDoneV.swift */; }; 4E3EAE462A990778009F1BE8 /* TextFieldAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB095482989CBFE0043A8A1 /* TextFieldAlert.swift */; }; 4E3EAE472A990778009F1BE8 /* QuiteSomeCoins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA82AC2A3F580500E5F39A /* QuiteSomeCoins.swift */; }; 4E3EAE482A990778009F1BE8 /* PayTemplateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA56402A7FF5200084948B /* PayTemplateView.swift */; }; @@ -227,7 +227,7 @@ 4EB0956E2989CBFE0043A8A1 /* Model+Pending.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0954C2989CBFE0043A8A1 /* Model+Pending.swift */; }; 4EB0956F2989CBFE0043A8A1 /* PendingOpView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0954D2989CBFE0043A8A1 /* PendingOpView.swift */; }; 4EB095702989CBFE0043A8A1 /* PendingOpsListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0954E2989CBFE0043A8A1 /* PendingOpsListView.swift */; }; - 4EB3136129FEE79B007D68BC /* SendDone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB3136029FEE79B007D68BC /* SendDone.swift */; }; + 4EB3136129FEE79B007D68BC /* SendDoneV.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB3136029FEE79B007D68BC /* SendDoneV.swift */; }; 4EB431672A1E55C700C5690E /* ManualWithdrawDone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB431662A1E55C700C5690E /* ManualWithdrawDone.swift */; }; 4EBA563F2A7FD9390084948B /* SuperScriptDigits.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA563E2A7FD9390084948B /* SuperScriptDigits.swift */; }; 4EBA56412A7FF5200084948B /* PayTemplateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA56402A7FF5200084948B /* PayTemplateView.swift */; }; @@ -402,7 +402,7 @@ 4EB0954C2989CBFE0043A8A1 /* Model+Pending.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Model+Pending.swift"; sourceTree = "<group>"; }; 4EB0954D2989CBFE0043A8A1 /* PendingOpView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingOpView.swift; sourceTree = "<group>"; }; 4EB0954E2989CBFE0043A8A1 /* PendingOpsListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingOpsListView.swift; sourceTree = "<group>"; }; - 4EB3136029FEE79B007D68BC /* SendDone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendDone.swift; sourceTree = "<group>"; }; + 4EB3136029FEE79B007D68BC /* SendDoneV.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendDoneV.swift; sourceTree = "<group>"; }; 4EB431662A1E55C700C5690E /* ManualWithdrawDone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManualWithdrawDone.swift; sourceTree = "<group>"; }; 4EBA563E2A7FD9390084948B /* SuperScriptDigits.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuperScriptDigits.swift; sourceTree = "<group>"; }; 4EBA56402A7FF5200084948B /* PayTemplateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PayTemplateView.swift; sourceTree = "<group>"; }; @@ -773,7 +773,7 @@ children = ( 4E40E0BD29F25ABB00B85369 /* SendAmount.swift */, 4E7940DD29FC307C00A9AEA1 /* SendPurpose.swift */, - 4EB3136029FEE79B007D68BC /* SendDone.swift */, + 4EB3136029FEE79B007D68BC /* SendDoneV.swift */, 4E9320442A1645B600A87B0E /* RequestPayment.swift */, 4E9320462A164BC700A87B0E /* PaymentPurpose.swift */, ); @@ -1085,7 +1085,7 @@ 4E3EAE422A990778009F1BE8 /* KeyboardResponder.swift in Sources */, 4E3EAE432A990778009F1BE8 /* TransactionRowView.swift in Sources */, 4E3EAE442A990778009F1BE8 /* PublicConstants.swift in Sources */, - 4E3EAE452A990778009F1BE8 /* SendDone.swift in Sources */, + 4E3EAE452A990778009F1BE8 /* SendDoneV.swift in Sources */, 4E3EAE462A990778009F1BE8 /* TextFieldAlert.swift in Sources */, 4E3EAE472A990778009F1BE8 /* QuiteSomeCoins.swift in Sources */, 4E3EAE482A990778009F1BE8 /* PayTemplateView.swift in Sources */, @@ -1194,7 +1194,7 @@ 4EAD117629F672FA008EDD0B /* KeyboardResponder.swift in Sources */, 4EB095572989CBFE0043A8A1 /* TransactionRowView.swift in Sources */, 4EA1ABBE29A3833A008821EA /* PublicConstants.swift in Sources */, - 4EB3136129FEE79B007D68BC /* SendDone.swift in Sources */, + 4EB3136129FEE79B007D68BC /* SendDoneV.swift in Sources */, 4EB0956B2989CBFE0043A8A1 /* TextFieldAlert.swift in Sources */, 4EBA82AD2A3F580500E5F39A /* QuiteSomeCoins.swift in Sources */, 4EBA56412A7FF5200084948B /* PayTemplateView.swift in Sources */, diff --git a/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift b/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift index d8b49bb..373daa8 100644 --- a/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift +++ b/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift @@ -18,6 +18,7 @@ struct PaymentPurpose: View { @AppStorage("iconOnly") var iconOnly: Bool = false let navTitle = String(localized: "NavTitle_Request_Subject", defaultValue: "Request", comment: "NavTitle for entering the subject for Request-Payment") + @State private var transactionStarted: Bool = false @FocusState private var isFocused: Bool private var label: String { @@ -63,11 +64,12 @@ struct PaymentPurpose: View { let emptyStr = "" let disabled = (expireDays == 0) || (summary.count < 1) NavigationLink(destination: LazyView { - SendDone(stack: stack.push(), - amountToSend: nil, - amountToReceive: amount, - summary: summary, - expireDays: expireDays) + SendDoneV(stack: stack.push(), + amountToSend: nil, + amountToReceive: amount, + summary: summary, + expireDays: expireDays, + transactionStarted: $transactionStarted) }) { Text("Request \(label) \(scopeInfo.currency)") // .accessibilityFont(buttonFont) diff --git a/TalerWallet1/Views/Peer2peer/SendDone.swift b/TalerWallet1/Views/Peer2peer/SendDoneV.swift index 3cf0ad4..84b31ee 100644 --- a/TalerWallet1/Views/Peer2peer/SendDone.swift +++ b/TalerWallet1/Views/Peer2peer/SendDoneV.swift @@ -7,8 +7,8 @@ import taler_swift import SymLog // Called when initiating a P2P transaction: Send coins or Send Request(Invoice) -struct SendDone: View { - private let symLog = SymLogV(0) +struct SendDoneV: View { + private let symLog = SymLogV() let stack: CallStack let navTitle = String(localized: "P2P Ready") #if DEBUG @@ -22,10 +22,11 @@ struct SendDone: View { let amountToReceive: Amount? let summary: String let expireDays: UInt + @Binding var transactionStarted: Bool @EnvironmentObject private var model: WalletModel - @State private var transactionId: String? + @State private var transactionId: String? = nil func reloadOneAction(_ transactionId: String) async throws -> Transaction { return try await model.getTransactionByIdT(transactionId) @@ -59,6 +60,12 @@ struct SendDone: View { .task { symLog.log(".task") do { + guard transactionStarted == false else { +// TODO: logger.warning("Try to start P2P a second time") + symLog.log("Yikes❗️ Try to start P2P a second time") + return + } + transactionStarted = true let timestamp = developerMode ? Timestamp.inSomeMinutes(expireDays > 20 ? (24*60) : expireDays > 5 ? 60 : 3) : Timestamp.inSomeDays(expireDays) @@ -86,14 +93,14 @@ struct SendDone: View { } } // MARK: - -struct SendNow_Previews: PreviewProvider { - static var previews: some View { - Group { - SendDone(stack: CallStack("Preview"), - amountToSend: try! Amount(fromString: LONGCURRENCY + ":4.8"), - amountToReceive: nil, - summary: "some subject/purpose", - expireDays: 0) - } - } -} +//struct SendNow_Previews: PreviewProvider { +// static var previews: some View { +// Group { +// SendDoneV(stack: CallStack("Preview"), +// amountToSend: try! Amount(fromString: LONGCURRENCY + ":4.8"), +// amountToReceive: nil, +// summary: "some subject/purpose", +// expireDays: 0) +// } +// } +//} diff --git a/TalerWallet1/Views/Peer2peer/SendPurpose.swift b/TalerWallet1/Views/Peer2peer/SendPurpose.swift index edb3cd9..3fc658c 100644 --- a/TalerWallet1/Views/Peer2peer/SendPurpose.swift +++ b/TalerWallet1/Views/Peer2peer/SendPurpose.swift @@ -19,6 +19,8 @@ struct SendPurpose: View { @AppStorage("iconOnly") var iconOnly: Bool = false let navTitle = String(localized: "NavTitle_Send_Subject", defaultValue: "Subject", comment: "NavTitle for entering the subject for Send-Money") + @State private var transactionStarted: Bool = false + private var value: String { // let mag = pow(10, formatter.maximumFractionDigits) // return formatter.string(for: Decimal(centsToTransfer) / mag) ?? "" @@ -81,11 +83,12 @@ struct SendPurpose: View { let emptyStr = "" let disabled = (expireDays == 0) || (summary.count < 1) // TODO: check amountAvailable NavigationLink(destination: LazyView { - SendDone(stack: stack.push(), - amountToSend: amount, - amountToReceive: nil, - summary: summary, - expireDays: expireDays) + SendDoneV(stack: stack.push(), + amountToSend: amount, + amountToReceive: nil, + summary: summary, + expireDays: expireDays, + transactionStarted: $transactionStarted) }) { Text("Send \(value) \(amountAvailable.currencyStr) now", comment: "first is value, second currencyString") // TODO: currency formatter } |