[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-ios] 44/54: BalanceReloaded
From: |
gnunet |
Subject: |
[taler-taler-ios] 44/54: BalanceReloaded |
Date: |
Fri, 30 Jun 2023 22:34:16 +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 49c0604cf88ac34ab5586ce98956f7d6de725c12
Author: Marc Stibane <marc@taler.net>
AuthorDate: Fri Jun 30 17:34:16 2023 +0200
BalanceReloaded
---
TalerWallet1/Controllers/PublicConstants.swift | 6 ++++
TalerWallet1/Views/Balances/BalancesListView.swift | 32 ++++++++++++++--------
2 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/TalerWallet1/Controllers/PublicConstants.swift
b/TalerWallet1/Controllers/PublicConstants.swift
index 99e1f46..35ff9f1 100644
--- a/TalerWallet1/Controllers/PublicConstants.swift
+++ b/TalerWallet1/Controllers/PublicConstants.swift
@@ -27,6 +27,7 @@ public let TALERURI = "talerUri"
public let TRANSACTIONTRANSITION = "transactionTransition"
+/// Notifications sent by wallet-core
extension Notification.Name {
static let BalanceChange = Notification.Name("balance-change")
static let TransactionStateTransition =
Notification.Name(TransactionTransition.TransitionType.transition.rawValue)
@@ -40,3 +41,8 @@ extension Notification.Name {
static let ProposalAccepted = Notification.Name("proposal-accepted")
static let ProposalDownloaded = Notification.Name("proposal-downloaded")
}
+
+/// Notifications for internal synchronization
+extension Notification.Name {
+ static let BalanceReloaded = Notification.Name("balanceReloaded")
+}
diff --git a/TalerWallet1/Views/Balances/BalancesListView.swift
b/TalerWallet1/Views/Balances/BalancesListView.swift
index 4a716eb..5cecb1c 100644
--- a/TalerWallet1/Views/Balances/BalancesListView.swift
+++ b/TalerWallet1/Views/Balances/BalancesListView.swift
@@ -14,9 +14,8 @@ struct BalancesListView: View {
let navTitle: String
let hamburgerAction: () -> Void
- @State var balances: [Balance] = []
@EnvironmentObject private var model: WalletModel
-
+ @State private var balances: [Balance] = []
@State private var centsToTransfer: UInt64 = 0
@State private var summary: String = ""
@State private var showQRScanner: Bool = false
@@ -61,8 +60,11 @@ struct BalancesListView: View {
})
}
- private func reloadAction() async {
- balances = await model.balancesM()
+ private func reloadAction() async -> Int {
+ let reloaded = await model.balancesM()
+ let count = reloaded.count
+ balances = reloaded
+ return count
}
var body: some View {
@@ -80,10 +82,13 @@ struct BalancesListView: View {
.overlay {
if balances.isEmpty {
WalletEmptyView()
- .refreshable {
+ .refreshable { // already async
symLog.log("refreshing")
- await reloadAction() // this closure is
already async, no need for a Task
- // TODO: reload
transactions
+ let count = await reloadAction()
+ if count > 0 {
+// postNotificationM(.BalanceReloaded)
+ NotificationCenter.default.post(name:
.BalanceReloaded, object: nil)
+ }
}
}
@@ -102,7 +107,7 @@ struct BalancesListView: View {
} // sheet
.task {
symLog.log(".task getBalances")
- await reloadAction()
+ _ = await reloadAction()
} // task
}
}
@@ -114,7 +119,7 @@ extension BalancesListView {
@Binding var balances: [Balance]
@Binding var centsToTransfer: UInt64
@Binding var summary: String
- var reloadAction: () async -> Void
+ var reloadAction: () async -> Int
@State private var shouldLoad = false
var body: some View {
@@ -128,10 +133,13 @@ extension BalancesListView {
centsToTransfer: $centsToTransfer,
summary: $summary)
}
- .refreshable {
+ .refreshable { // already async
symLog?.log("refreshing")
- await reloadAction() // this closure is already
async, no need for a Task
- // TODO: reload transactions
+ let count = await reloadAction()
+ if count > 0 {
+// postNotificationM(.BalanceReloaded)
+ NotificationCenter.default.post(name:
.BalanceReloaded, object: nil)
+ }
}
.listStyle(myListStyle.style).anyView
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-ios] 33/54: log only release builds, (continued)
- [taler-taler-ios] 33/54: log only release builds, gnunet, 2023/06/30
- [taler-taler-ios] 27/54: Logging, gnunet, 2023/06/30
- [taler-taler-ios] 38/54: actions, gnunet, 2023/06/30
- [taler-taler-ios] 28/54: playSound, gnunet, 2023/06/30
- [taler-taler-ios] 32/54: Adjust DebugView for Notch, gnunet, 2023/06/30
- [taler-taler-ios] 20/54: viewID + comments, gnunet, 2023/06/30
- [taler-taler-ios] 31/54: bump Testflight version, gnunet, 2023/06/30
- [taler-taler-ios] 37/54: Decodable, gnunet, 2023/06/30
- [taler-taler-ios] 29/54: Model cleanup, gnunet, 2023/06/30
- [taler-taler-ios] 36/54: playSound, gnunet, 2023/06/30
- [taler-taler-ios] 44/54: BalanceReloaded,
gnunet <=
- [taler-taler-ios] 35/54: developerMode, gnunet, 2023/06/30
- [taler-taler-ios] 45/54: TransactionDetails, gnunet, 2023/06/30
- [taler-taler-ios] 39/54: Scrollview, gnunet, 2023/06/30
- [taler-taler-ios] 25/54: failTransaction, gnunet, 2023/06/30
- [taler-taler-ios] 23/54: Remove old view, gnunet, 2023/06/30
- [taler-taler-ios] 24/54: balance-change, gnunet, 2023/06/30
- [taler-taler-ios] 47/54: #available(iOS 17.0, *) only with Xcode 15, gnunet, 2023/06/30
- [taler-taler-ios] 46/54: ThreeAmountsSheet, gnunet, 2023/06/30
- [taler-taler-ios] 51/54: remove debugging, gnunet, 2023/06/30
- [taler-taler-ios] 22/54: cleaned up P2P, gnunet, 2023/06/30