diff options
author | Marc Stibane <marc@taler.net> | 2023-10-26 07:38:03 +0200 |
---|---|---|
committer | Marc Stibane <marc@taler.net> | 2023-10-26 07:38:03 +0200 |
commit | 8f3d5473891677535960c3328c166fe41ef17fe4 (patch) | |
tree | 7eb523329f769891b6de31210e25cfc3e51e3fa8 | |
parent | 8767f5abddd2f4eb7e8635c2907d71f1b1abc87f (diff) | |
download | taler-ios-8f3d5473891677535960c3328c166fe41ef17fe4.tar.gz taler-ios-8f3d5473891677535960c3328c166fe41ef17fe4.tar.bz2 taler-ios-8f3d5473891677535960c3328c166fe41ef17fe4.zip |
Accessibility: QR, Date
6 files changed, 35 insertions, 8 deletions
diff --git a/TalerWallet1/Helper/TalerDater.swift b/TalerWallet1/Helper/TalerDater.swift index 2629900..5bde4bc 100644 --- a/TalerWallet1/Helper/TalerDater.swift +++ b/TalerWallet1/Helper/TalerDater.swift @@ -54,21 +54,29 @@ public class TalerDater: DateFormatter { } } +// public static func date(from: Timestamp) -> Date { +// let milliseconds = try from.milliseconds() +// let date = Date(milliseconds: milliseconds) +// return date +// } + /// converts a timestamp into a formatted date string - public static func dateString(from: Timestamp, relative: Bool = false) -> String { + public static func dateString(from: Timestamp, relative: Bool = false) -> (String, Date?) { do { let milliseconds = try from.milliseconds() let date = Date(milliseconds: milliseconds) +// let date = date(from: from) if relative { let now = Date.now let timeInterval = now.timeIntervalSince(date) if let relativeDate = relativeDate(from: timeInterval) { - return relativeDate + return (relativeDate, date) } } - return shared.string(from: date) + return (shared.string(from: date), date) } catch { // Never - return "Never" +// let never = LocalizedString("Never") + return ("Never", nil) } } diff --git a/TalerWallet1/Views/Balances/BalanceRowView.swift b/TalerWallet1/Views/Balances/BalanceRowView.swift index 27ded57..8319782 100644 --- a/TalerWallet1/Views/Balances/BalanceRowView.swift +++ b/TalerWallet1/Views/Balances/BalanceRowView.swift @@ -104,7 +104,7 @@ struct BalanceRowView: View { HStack(spacing: HSPACING) { twoRowButtons } } } - .accessibilityElement(children: .combine) +// .accessibilityElement(children: .combine) } } } diff --git a/TalerWallet1/Views/HelperViews/QRCodeDetailView.swift b/TalerWallet1/Views/HelperViews/QRCodeDetailView.swift index 33a5e44..3f7b139 100644 --- a/TalerWallet1/Views/HelperViews/QRCodeDetailView.swift +++ b/TalerWallet1/Views/HelperViews/QRCodeDetailView.swift @@ -36,6 +36,7 @@ struct QRCodeDetailView: View { HStack { Spacer() QRGeneratorView(text: talerURI) + .accessibilityLabel("QR Code") Spacer() } .listRowSeparator(.hidden) diff --git a/TalerWallet1/Views/Settings/Pending/PendingOpView.swift b/TalerWallet1/Views/Settings/Pending/PendingOpView.swift index c3ceb29..ddfbfcd 100644 --- a/TalerWallet1/Views/Settings/Pending/PendingOpView.swift +++ b/TalerWallet1/Views/Settings/Pending/PendingOpView.swift @@ -28,7 +28,7 @@ struct PendingOpView: View { let isDue = "isDue" Toggle(isDue, isOn: $isDue) .disabled(true) - let dateString = TalerDater.dateString(from: pendingOp.timestampDue) + let (dateString, date) = TalerDater.dateString(from: pendingOp.timestampDue) Text(dateString) } .accessibilityFont(.body) diff --git a/TalerWallet1/Views/Transactions/TransactionDetailView.swift b/TalerWallet1/Views/Transactions/TransactionDetailView.swift index 409b37b..899bd43 100644 --- a/TalerWallet1/Views/Transactions/TransactionDetailView.swift +++ b/TalerWallet1/Views/Transactions/TransactionDetailView.swift @@ -45,6 +45,20 @@ struct TransactionDetailView: View { @State var transaction: Transaction = Transaction(dummyCurrency: DEMOCURRENCY) @State var viewId = UUID() + func accessibilityDate(_ date: Date?) -> String? { + if let date { + let dateString = DateFormatter.localizedString(from: date, + dateStyle: .short, + timeStyle: .none) + let hourComponents = Calendar.current.dateComponents([.hour, .minute], from: date) + if let timeString = DateComponentsFormatter.localizedString(from: hourComponents, unitsStyle: .spellOut) { + return dateString + ", " + timeString + } + return dateString + } + return nil + } + var body: some View { #if DEBUG let _ = Self._printChanges() @@ -52,7 +66,10 @@ struct TransactionDetailView: View { #endif let common = transaction.common let pending = transaction.isPending - let dateString = TalerDater.dateString(from: common.timestamp) + let locale = TalerDater.shared.locale + let (dateString, date) = TalerDater.dateString(from: common.timestamp) + let accessibilityDate = accessibilityDate(date) ?? + dateString let navTitle2 = transaction.localizedType Group { List { @@ -68,6 +85,7 @@ struct TransactionDetailView: View { } // Suspend + Resume buttons Text(dateString) .accessibilityFont(.body) + .accessibilityLabel(accessibilityDate) .foregroundColor(.secondary) .listRowSeparator(.hidden) HStack { diff --git a/TalerWallet1/Views/Transactions/TransactionRowView.swift b/TalerWallet1/Views/Transactions/TransactionRowView.swift index ee8ff88..3eaaa76 100644 --- a/TalerWallet1/Views/Transactions/TransactionRowView.swift +++ b/TalerWallet1/Views/Transactions/TransactionRowView.swift @@ -32,7 +32,7 @@ struct TransactionRowView: View { let details = transaction.detailsToShow() let keys = details.keys - let dateString = TalerDater.dateString(from: common.timestamp, relative: true) + let (dateString, date) = TalerDater.dateString(from: common.timestamp, relative: true) let incoming = common.incoming() let foreColor = pending ? WalletColors().pendingColor(incoming) : done ? WalletColors().transactionColor(incoming) |