gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

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