gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-ios] 03/07: Accessibility: QR, Date


From: gnunet
Subject: [taler-taler-ios] 03/07: Accessibility: QR, Date
Date: Thu, 26 Oct 2023 13:21:29 +0200

This is an automated email from the git hooks/post-receive script.

marc-stibane pushed a commit to branch master
in repository taler-ios.

commit 8f3d5473891677535960c3328c166fe41ef17fe4
Author: Marc Stibane <marc@taler.net>
AuthorDate: Thu Oct 26 07:38:03 2023 +0200

    Accessibility: QR, Date
---
 TalerWallet1/Helper/TalerDater.swift                 | 16 ++++++++++++----
 TalerWallet1/Views/Balances/BalanceRowView.swift     |  2 +-
 .../Views/HelperViews/QRCodeDetailView.swift         |  1 +
 .../Views/Settings/Pending/PendingOpView.swift       |  2 +-
 .../Views/Transactions/TransactionDetailView.swift   | 20 +++++++++++++++++++-
 .../Views/Transactions/TransactionRowView.swift      |  2 +-
 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)

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]