[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-ios] 14/30: needsKYC badge
From: |
gnunet |
Subject: |
[taler-taler-ios] 14/30: needsKYC badge |
Date: |
Sun, 19 Nov 2023 23:53:38 +0100 |
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 f7750a60188e34ddedcae0cf763a926d913afba0
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sat Nov 18 17:02:26 2023 +0100
needsKYC badge
---
.../Views/Balances/BalancesSectionView.swift | 4 +-
TalerWallet1/Views/Balances/PendingRowView.swift | 58 ++++++++++++++--------
TalerWallet1/Views/Balances/TwoRowButtons.swift | 17 ++++---
.../Views/Transactions/TransactionRowView.swift | 25 ++++++++--
4 files changed, 71 insertions(+), 33 deletions(-)
diff --git a/TalerWallet1/Views/Balances/BalancesSectionView.swift
b/TalerWallet1/Views/Balances/BalancesSectionView.swift
index 40feeff..e7c390e 100644
--- a/TalerWallet1/Views/Balances/BalancesSectionView.swift
+++ b/TalerWallet1/Views/Balances/BalancesSectionView.swift
@@ -193,11 +193,11 @@ fileprivate struct BalancesPendingRowView: View {
VStack(spacing: 6) {
var rows = 0
if !pendingIncoming.isZero {
- PendingRowView(amount: pendingIncoming, incoming: true)
+ PendingRowView(amount: pendingIncoming, incoming: true,
shouldConfirm: false, needsKYC: false) // TODO: !!!
let _ = (rows+=1)
}
if !pendingOutgoing.isZero {
- PendingRowView(amount: pendingOutgoing, incoming: false)
+ PendingRowView(amount: pendingOutgoing, incoming: false,
shouldConfirm: false, needsKYC: false)
let _ = (rows+=1)
}
if rows == 0 {
diff --git a/TalerWallet1/Views/Balances/PendingRowView.swift
b/TalerWallet1/Views/Balances/PendingRowView.swift
index 9549c40..903740e 100644
--- a/TalerWallet1/Views/Balances/PendingRowView.swift
+++ b/TalerWallet1/Views/Balances/PendingRowView.swift
@@ -9,6 +9,8 @@ struct PendingRowContentV: View {
let titles: (String, String?)
let isHorizontal: Bool
let incoming: Bool
+ let shouldConfirm: Bool
+ let needsKYC: Bool
public static func width(titles: (String, String?), isHorizontal: Bool,
sizeCategory: ContentSizeCategory) -> CGFloat {
@@ -37,16 +39,29 @@ struct PendingRowContentV: View {
let pendingColor = WalletColors().pendingColor(incoming)
let imageName = incoming ? "plus.diamond" // goforward.plus
circle
: "minus.diamond" //
+ let badgeName = needsKYC ? "star.fill"
+ : "circle.fill"
HStack(spacing: 8) {
- Image(systemName: imageName)
- .foregroundColor(pendingColor)
- .accessibilityFont(.largeTitle)
- .accessibility(hidden: true)
-
- Text(title(titles, isHorizontal))
+ HStack(alignment: .top, spacing: -8) { // TODO: adapt spacing
to dynamic fontsize
+ Image(systemName: imageName)
+ .foregroundColor(pendingColor)
+ .accessibilityFont(.largeTitle)
+ .accessibility(hidden: true)
+ Image(systemName: badgeName)
+ .accessibilityFont(.caption)
+ .foregroundColor((needsKYC || shouldConfirm) ? .red :
.clear)
+ }
+ let pendingAccTitles = accessTitles(titles, isHorizontal)
+ Text(pendingAccTitles.0)
+ .accessibilityLabel(Text(pendingAccTitles.1))
.lineLimit(4)
.accessibilityFont(.body)
}
+ .accessibilityElement(children: .combine)
+ .accessibilityValue(needsKYC ? ". Needs K Y C" :
+ shouldConfirm ? ". Needs bank confirmation" :
EMPTYSTRING)
+ .accessibilityHint("Will go to pending transaction list.")
+
}
}
@@ -54,6 +69,8 @@ struct PendingRowContentV: View {
struct PendingRowView: View {
let amount: Amount
let incoming: Bool
+ let shouldConfirm: Bool
+ let needsKYC: Bool
@Environment(\.sizeCategory) var sizeCategory
@EnvironmentObject private var controller: Controller
@@ -88,20 +105,21 @@ struct PendingRowView: View {
let currencyInfo = controller.info(for: amount.currencyStr,
controller.currencyTicker)
let amountStr = amount.string(currencyInfo)
let amountWidth = amountStr.width(largeAmountFont: false,
sizeCategory)
- let inTitle = iconOnly ? (inTitle0, nil)
- : (inTitle1, inTitle2)
- let outTitle = iconOnly ? (outTitle0, nil)
- : (outTitle1, outTitle2)
- let title = incoming ? inTitle
- : outTitle
- let contentWidth = PendingRowContentV.width(titles: incoming ?
inTitle : outTitle,
- isHorizontal: false,
sizeCategory: sizeCategory)
-
+ let inTitles = iconOnly ? (inTitle0, nil)
+ : (inTitle1, inTitle2)
+ let outTitles = iconOnly ? (outTitle0, nil)
+ : (outTitle1, outTitle2)
+ let titles = incoming ? inTitles
+ : outTitles
+ let contentWidth = PendingRowContentV.width(titles: titles,
+ isHorizontal: false,
+ sizeCategory:
sizeCategory)
let needVStack = needVStack(available: width, contentWidth:
contentWidth, valueWidth: amountWidth)
AmountRowV(amountStr: amountStr, amountColor: pendingColor,
largeAmountFont: false,
fitsHorizontal: !needVStack, vertAlignment:
.center) {
// isHorizontal=true to try to fit "- Pending outgoing" +
amount in 1 line
- PendingRowContentV(titles: title, isHorizontal: true,
incoming: incoming)
+ PendingRowContentV(titles: titles, isHorizontal: true,
incoming: incoming,
+ shouldConfirm: shouldConfirm, needsKYC:
needsKYC)
}
}
}
@@ -117,8 +135,8 @@ func PreviewCurrencyInfo(_ currency: String, digits: Int)
-> CurrencyInfo {
fractionalNormalDigits: digits,
fractionalTrailingZeroDigits: digits,
altUnitNames: [0 : unitName])
- let formatter = CurrencyFormatter.formatter(scope: scope, specs: specs)
- return CurrencyInfo(scope: scope, specs: specs, formatter: formatter)
+ let previewFormatter = CurrencyFormatter.formatter(scope: scope, specs:
specs)
+ return CurrencyInfo(scope: scope, specs: specs, formatter:
previewFormatter)
}
@MainActor
@@ -127,8 +145,8 @@ fileprivate struct Preview_Content: View {
let test = Amount(currency: TESTCURRENCY, cent: 123)
let demo = Amount(currency: DEMOCURRENCY, cent: 123456)
List {
- PendingRowView(amount: test, incoming: true)
- PendingRowView(amount: demo, incoming: false)
+ PendingRowView(amount: test, incoming: true, shouldConfirm: true,
needsKYC: false)
+ PendingRowView(amount: demo, incoming: false, shouldConfirm:
false, needsKYC: true)
}
}
}
diff --git a/TalerWallet1/Views/Balances/TwoRowButtons.swift
b/TalerWallet1/Views/Balances/TwoRowButtons.swift
index 423f4fd..019b304 100644
--- a/TalerWallet1/Views/Balances/TwoRowButtons.swift
+++ b/TalerWallet1/Views/Balances/TwoRowButtons.swift
@@ -6,13 +6,14 @@ import SwiftUI
import taler_swift
extension View {
- func title(_ titles: (String, String?), _ fitsSideBySide: Bool) -> String {
- let delimiter = fitsSideBySide ? "\n" : " "
+ func accessTitles(_ titles: (String, String?), _ fitsSideBySide: Bool) ->
(String, String) {
+ let space = " "
+ let delimiter = fitsSideBySide ? "\n" : space
let (title1, title2) = titles
if let title2 {
- return title1 + delimiter + title2
+ return (title1 + delimiter + title2, title1 + space + title2)
} else {
- return title1
+ return (title1, title1)
}
}
}
@@ -29,13 +30,17 @@ struct TwoRowButtons: View {
var body: some View {
Group {
- Button(title(sendTitles, fitsSideBySide), action: sendAction)
+ let sendAccTitles = accessTitles(sendTitles, fitsSideBySide)
+ Button(sendAccTitles.0, action: sendAction)
+ .accessibilityLabel(Text(sendAccTitles.1))
.lineLimit(lineLimit)
.disabled(sendDisabled)
.buttonStyle(TalerButtonStyle(type: .bordered,
dimmed: false,
aligned: .center))
- Button(title(recvTitles, fitsSideBySide), action: recvAction)
+ let recvAccTitles = accessTitles(recvTitles, fitsSideBySide)
+ Button(recvAccTitles.0, action: recvAction)
+ .accessibilityLabel(Text(recvAccTitles.1))
.lineLimit(lineLimit)
.disabled(false)
.buttonStyle(TalerButtonStyle(type: .bordered,
diff --git a/TalerWallet1/Views/Transactions/TransactionRowView.swift
b/TalerWallet1/Views/Transactions/TransactionRowView.swift
index e3d71ab..bbdb250 100644
--- a/TalerWallet1/Views/Transactions/TransactionRowView.swift
+++ b/TalerWallet1/Views/Transactions/TransactionRowView.swift
@@ -10,6 +10,8 @@ struct TransactionRowContentV: View {
var centerBottom: String
let isHorizontal: Bool
let incoming: Bool
+ let shouldConfirm: Bool
+ let needsKYC: Bool
let foreColor:Color
public static func width(titles: (String, String?), isHorizontal: Bool,
@@ -39,11 +41,18 @@ struct TransactionRowContentV: View {
var body: some View {
let imageName = incoming ? "plus.circle.fill"
: "minus.circle.fill"
+ let badgeName = needsKYC ? "star.fill"
+ : "circle.fill"
HStack(spacing: 8) {
- Image(systemName: imageName)
- .foregroundColor(foreColor)
- .accessibilityFont(.largeTitle)
- .accessibility(hidden: true)
+ HStack(alignment: .top, spacing: -8) { // TODO: adapt spacing
to dynamic fontsize
+ Image(systemName: imageName)
+ .foregroundColor(foreColor)
+ .accessibilityFont(.largeTitle)
+ .accessibility(hidden: true)
+ Image(systemName: badgeName)
+ .accessibilityFont(.caption)
+ .foregroundColor((needsKYC || shouldConfirm) ? .red :
.clear)
+ }.accessibilityHidden(true)
VStack(alignment: .leading) {
Text(centerTop)
@@ -72,6 +81,8 @@ struct TransactionRowView: View {
let common = transaction.common
let amount = common.amountEffective
let pending = transaction.isPending
+ let needsKYC = transaction.isPendingKYC
+ let shouldConfirm = transaction.shouldConfirm
let done = transaction.isDone
let details = transaction.detailsToShow()
let keys = details.keys
@@ -95,9 +106,13 @@ struct TransactionRowView: View {
fitsHorizontal: !needVStack, vertAlignment:
.center) {
TransactionRowContentV(centerTop:
transaction.localizedType,
- centerBottom: dateString,
isHorizontal: true, incoming: incoming, foreColor: foreColor)
+ centerBottom: dateString,
isHorizontal: true,
+ incoming: incoming,
shouldConfirm: shouldConfirm,
+ needsKYC: needsKYC,
foreColor: foreColor)
}
.accessibilityElement(children: .combine)
+ .accessibilityValue(needsKYC ? ". Needs K Y C" :
+ shouldConfirm ? ". Needs bank confirmation"
: EMPTYSTRING)
.accessibilityHint("Will go to detail view.")
}
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-ios] 15/30: ScrollVStack, (continued)
- [taler-taler-ios] 15/30: ScrollVStack, gnunet, 2023/11/19
- [taler-taler-ios] 25/30: cleanup, gnunet, 2023/11/19
- [taler-taler-ios] 24/30: cleanup P2P, gnunet, 2023/11/19
- [taler-taler-ios] 17/30: accessibilityAddTraits, gnunet, 2023/11/19
- [taler-taler-ios] 11/30: cleanup, gnunet, 2023/11/19
- [taler-taler-ios] 29/30: cleanup notifications, gnunet, 2023/11/19
- [taler-taler-ios] 30/30: Bump version to 0.9.3 (27), gnunet, 2023/11/19
- [taler-taler-ios] 27/30: Remove PendingOps, gnunet, 2023/11/19
- [taler-taler-ios] 12/30: leadingCurrencySymbol, gnunet, 2023/11/19
- [taler-taler-ios] 13/30: cleanup, gnunet, 2023/11/19
- [taler-taler-ios] 14/30: needsKYC badge,
gnunet <=
- [taler-taler-ios] 10/30: Remove PendingOps, gnunet, 2023/11/19
- [taler-taler-ios] 09/30: Bugfix: set currency in buttonAction, gnunet, 2023/11/19
- [taler-taler-ios] 20/30: ViewThatFits instead of own computations, iconBadge, gnunet, 2023/11/19
- [taler-taler-ios] 16/30: ShortcutButton, gnunet, 2023/11/19
- [taler-taler-ios] 08/30: Expired, gnunet, 2023/11/19
- [taler-taler-ios] 22/30: DD51 for fee, gnunet, 2023/11/19
- [taler-taler-ios] 28/30: fixup ScrollVStack, gnunet, 2023/11/19