taler-ios

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

commit b30311d700a58f94385684ac17ebc5d67fb5e68a
parent 7c12a2efd880a3de6347342b8641610fa76b704b
Author: Marc Stibane <marc@taler.net>
Date:   Tue, 21 Jan 2025 10:15:38 +0100

timeToPay

Diffstat:
MTalerWallet1/Views/Sheets/Payment/PaymentView.swift | 24++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/TalerWallet1/Views/Sheets/Payment/PaymentView.swift b/TalerWallet1/Views/Sheets/Payment/PaymentView.swift @@ -132,13 +132,19 @@ struct PaymentView: View, Sendable { } func timeToPay(_ terms: MerchantContractTerms) -> Int { - if terms.payDeadline > terms.timestamp { - if let duration = try? terms.payDeadline - terms.timestamp { - switch duration { - case .milliseconds(let uInt64): - return Int(uInt64 / 1000) - case .forever: break - } } } + if let milliseconds = try? terms.payDeadline.milliseconds() { + let date = Date(milliseconds: milliseconds) + let now = Date.now + let timeInterval = now.timeIntervalSince(date) + if timeInterval < 0 { + symLog.log("\(timeInterval) seconds left to pay") + return Int(-timeInterval) + } else { + symLog.log("\(date) - \(now) = \(timeInterval)") + } + } else { + symLog.log("no milliseconds") + } return 0 } @@ -233,7 +239,7 @@ struct PaymentView: View, Sendable { if !paid { if let effective { VStack { - if timeToPay > 0 { + if timeToPay > 0 && timeToPay < 300 { let startDate = Date() HStack { Text("Time to pay:") @@ -254,6 +260,8 @@ struct PaymentView: View, Sendable { }.monospacedDigit() Text("seconds") }.accessibilityElement(children: .combine) + } else { + let _ = symLog.log("\(timeToPay) not shown") } let destination = PaymentDone(stack: stack.push(), // scope: firstScope, // TODO: let user choose which currency