[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-ios] 12/36: DD51 Currency rendering
From: |
gnunet |
Subject: |
[taler-taler-ios] 12/36: DD51 Currency rendering |
Date: |
Mon, 13 Nov 2023 21:27:17 +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 d02a14e2289465d8fd5c14cff89c272005ef4a96
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sun Nov 12 13:16:36 2023 +0100
DD51 Currency rendering
---
TalerWallet1/Helper/CurrencySpecification.swift | 22 +++++++++++++++++++++-
taler-swift/Sources/taler-swift/Amount.swift | 6 +++++-
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/TalerWallet1/Helper/CurrencySpecification.swift
b/TalerWallet1/Helper/CurrencySpecification.swift
index 01699cf..1cac315 100644
--- a/TalerWallet1/Helper/CurrencySpecification.swift
+++ b/TalerWallet1/Helper/CurrencySpecification.swift
@@ -8,11 +8,31 @@ import taler_swift
extension Amount {
func string(_ currencyInfo: CurrencyInfo?) -> String {
if let currencyInfo {
- return currencyInfo.string(for: valueAsTuple)
+ return currencyInfo.string(for: valueAsFloatTuple)
} else {
return valueStr
}
}
+
+ func inputDigits(_ currencyInfo: CurrencyInfo) -> UInt {
+ let inputDigits = currencyInfo.specs.fractionalInputDigits
+ if inputDigits < 0 { return 0 }
+ if inputDigits > 8 { return 8}
+ return UInt(inputDigits)
+ }
+
+ func addDigit(_ digit: UInt8, currencyInfo: CurrencyInfo) {
+ shiftLeft(add: digit, inputDigits(currencyInfo))
+ }
+
+ func removeDigit(_ currencyInfo: CurrencyInfo) {
+ shiftRight() // divide by 10
+ mask(inputDigits(currencyInfo)) // replace all digits after
#inputDigit with 0
+ }
+
+ func plainString(_ currencyInfo: CurrencyInfo) -> String {
+ return plainString(inputDigits: inputDigits(currencyInfo))
+ }
}
public struct CurrencyInfo {
diff --git a/taler-swift/Sources/taler-swift/Amount.swift
b/taler-swift/Sources/taler-swift/Amount.swift
index c629248..938b6dc 100644
--- a/taler-swift/Sources/taler-swift/Amount.swift
+++ b/taler-swift/Sources/taler-swift/Amount.swift
@@ -113,7 +113,11 @@ public final class Amount: Codable, Hashable, @unchecked
Sendable, CustomStringC
}
/// The tuple representation of the value.
- public var valueAsTuple: (Double, Double) {
+ public var valueAsDecimalTuple: (UInt64, UInt32) {
+ (integer, fraction)
+ }
+ /// The tuple representation of the value.
+ public var valueAsFloatTuple: (Double, Double) {
(intValue, fracValue)
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-ios] branch master updated (e082595 -> e79881c), gnunet, 2023/11/13
- [taler-taler-ios] 04/36: DD51 fractional base, gnunet, 2023/11/13
- [taler-taler-ios] 05/36: fix tests, gnunet, 2023/11/13
- [taler-taler-ios] 03/36: Exchange with scopeInfo, gnunet, 2023/11/13
- [taler-taler-ios] 02/36: Transaction, L10N, gnunet, 2023/11/13
- [taler-taler-ios] 19/36: amountToTransfer Pending, gnunet, 2023/11/13
- [taler-taler-ios] 23/36: amountToTransfer Exchange, gnunet, 2023/11/13
- [taler-taler-ios] 14/36: Debugging: Delay currency info, gnunet, 2023/11/13
- [taler-taler-ios] 27/36: Debugging, gnunet, 2023/11/13
- [taler-taler-ios] 30/36: Bugfix, gnunet, 2023/11/13
- [taler-taler-ios] 12/36: DD51 Currency rendering,
gnunet <=
- [taler-taler-ios] 24/36: Exchange needs Balance for Deposit, gnunet, 2023/11/13
- [taler-taler-ios] 21/36: amountToTransfer Send, gnunet, 2023/11/13
- [taler-taler-ios] 07/36: Amount(currency:cent:), gnunet, 2023/11/13
- [taler-taler-ios] 06/36: RequestPurpose, gnunet, 2023/11/13
- [taler-taler-ios] 01/36: Startup Chime, gnunet, 2023/11/13
- [taler-taler-ios] 18/36: amountToTransfer Transactions, gnunet, 2023/11/13
- [taler-taler-ios] 17/36: amountToTransfer Balances, gnunet, 2023/11/13
- [taler-taler-ios] 09/36: cleanup, zero, gnunet, 2023/11/13
- [taler-taler-ios] 29/36: less logging, gnunet, 2023/11/13
- [taler-taler-ios] 13/36: once at very first startup, gnunet, 2023/11/13