summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Stibane <marc@taler.net>2023-10-26 07:38:03 +0200
committerMarc Stibane <marc@taler.net>2023-10-26 07:38:03 +0200
commit8f3d5473891677535960c3328c166fe41ef17fe4 (patch)
tree7eb523329f769891b6de31210e25cfc3e51e3fa8
parent8767f5abddd2f4eb7e8635c2907d71f1b1abc87f (diff)
downloadtaler-ios-8f3d5473891677535960c3328c166fe41ef17fe4.tar.gz
taler-ios-8f3d5473891677535960c3328c166fe41ef17fe4.tar.bz2
taler-ios-8f3d5473891677535960c3328c166fe41ef17fe4.zip
Accessibility: QR, Date
-rw-r--r--TalerWallet1/Helper/TalerDater.swift16
-rw-r--r--TalerWallet1/Views/Balances/BalanceRowView.swift2
-rw-r--r--TalerWallet1/Views/HelperViews/QRCodeDetailView.swift1
-rw-r--r--TalerWallet1/Views/Settings/Pending/PendingOpView.swift2
-rw-r--r--TalerWallet1/Views/Transactions/TransactionDetailView.swift20
-rw-r--r--TalerWallet1/Views/Transactions/TransactionRowView.swift2
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)