taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit 8d721d763a65b65ac14922064f69af4e30bd8125
parent 5c96a507ef02010c51e0c0089c26da3b65111b56
Author: Marc Stibane <marc@taler.net>
Date:   Wed, 23 Jul 2025 07:11:32 +0200

- selectedChestIndex

Diffstat:
MTalerWallet1/Views/Actions/Peer2peer/RequestPayment.swift | 4++--
MTalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift | 5++---
MTalerWallet1/Views/Balances/BalancesListView.swift | 2--
MTalerWallet1/Views/Main/MainView.swift | 6------
MTalerWallet1/Views/OIM/OIMbalances.swift | 26++++++++------------------
5 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/TalerWallet1/Views/Actions/Peer2peer/RequestPayment.swift b/TalerWallet1/Views/Actions/Peer2peer/RequestPayment.swift @@ -31,7 +31,6 @@ struct RequestPayment: View { init(stack: CallStack, selectedBalance: Balance?, - selectedChestIndex: Int?, // OIM TODO: use balance amountLastUsed: Binding<Amount>, summary: Binding<String>, iconID: Binding<String?> @@ -44,7 +43,8 @@ struct RequestPayment: View { self._amountLastUsed = amountLastUsed self._summary = summary self._iconID = iconID - let oimCash = OIMcash(selectedChestIndex) + let oimCurrency = oimCurrency(selectedBalance) // might be nil ==> OIMeuros + let oimCash = OIMcash(oimCurrency) self._cash = StateObject(wrappedValue: { oimCash }()) } diff --git a/TalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift b/TalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift @@ -34,7 +34,6 @@ struct SendAmountV: View { init(stack: CallStack, selectedBalance: Balance?, - selectedChestIndex: Int?, // OIM TODO: use balance amountLastUsed: Binding<Amount>, summary: Binding<String>, iconID: Binding<String?> @@ -47,7 +46,8 @@ struct SendAmountV: View { self._amountLastUsed = amountLastUsed self._summary = summary self._iconID = iconID - let oimCash = OIMcash(selectedChestIndex) + let oimCurrency = oimCurrency(selectedBalance) // might be nil ==> OIMeuros + let oimCash = OIMcash(oimCurrency) self._cash = StateObject(wrappedValue: { oimCash }()) } @@ -188,7 +188,6 @@ fileprivate struct Preview_Content: View { flags: []) SendAmountV(stack: CallStack("Preview"), selectedBalance: noBalance, - selectedChestIndex: nil, // preview amountLastUsed: $amountToPreview, summary: $summary, iconID: $iconID) diff --git a/TalerWallet1/Views/Balances/BalancesListView.swift b/TalerWallet1/Views/Balances/BalancesListView.swift @@ -15,7 +15,6 @@ struct BalancesListView: View { private let symLog = SymLogV(0) let stack: CallStack @Binding var selectedBalance: Balance? // set in TransactionsListView - @Binding var selectedChestIndex: Int? // OIM TODO: use balance @Binding var reloadTransactions: Int @Binding var qrButtonTapped: Bool @@ -79,7 +78,6 @@ struct BalancesListView: View { if controller.oimModeActive { OIMbalances(stack: stack.push(), selectedBalance: $selectedBalance, // set to user choice - selectedChestIndex: $selectedChestIndex, // OIM TODO: use balance qrButtonTapped: $qrButtonTapped, historyTapped: $historyTapped) .environmentObject(NamespaceWrapper(namespace)) // keep OIMviews apart diff --git a/TalerWallet1/Views/Main/MainView.swift b/TalerWallet1/Views/Main/MainView.swift @@ -34,7 +34,6 @@ struct MainView: View { @StateObject private var tabBarModel = TabBarModel() @State private var selectedBalance: Balance? = nil // for sheets, gets set in TransactionsListView - @State private var selectedChestIndex: Int? = nil // select in OIMbalances TODO: use balance @State private var urlToOpen: URL? = nil @State private var showUrlSheet = false @State private var showActionSheet = false @@ -73,7 +72,6 @@ struct MainView: View { let mainContent = ZStack { MainContent(logger: logger, stack: stack.push("Content"), selectedBalance: $selectedBalance, - selectedChestIndex: $selectedChestIndex, // OIM TODO: use balance talerFontIndex: $talerFontIndex, showActionSheet: $showActionSheet, showScanner: $showScanner, @@ -327,7 +325,6 @@ extension MainView { let logger: Logger let stack: CallStack @Binding var selectedBalance: Balance? - @Binding var selectedChestIndex: Int? // OIM TODO: use balance @Binding var talerFontIndex: Int @Binding var showActionSheet: Bool @Binding var showScanner: Bool @@ -411,13 +408,11 @@ extension MainView { /// Destinations for the 4 actions let sendDest = SendAmountV(stack: stack.push(Self.name), selectedBalance: selectedBalance, // if nil shows currency picker - selectedChestIndex: selectedChestIndex, // OIM TODO: use balance amountLastUsed: $amountLastUsed, // currency needs to be updated! summary: $summary, iconID: $iconID) let requestDest = RequestPayment(stack: stack.push(Self.name), selectedBalance: selectedBalance, - selectedChestIndex: selectedChestIndex, // OIM TODO: use balance amountLastUsed: $amountLastUsed, // currency needs to be updated! summary: $summary, iconID: $iconID) @@ -458,7 +453,6 @@ extension MainView { let balancesStack = NavigationView { BalancesListView(stack: stack.push(balancesTitle), selectedBalance: $selectedBalance, // for sheets, pass down to TransactionsListView - selectedChestIndex: $selectedChestIndex, // OIM TODO: use balance // shouldReloadPending: $shouldReloadPending, reloadTransactions: $shouldReloadTransactions, qrButtonTapped: $qrButtonTapped) diff --git a/TalerWallet1/Views/OIM/OIMbalances.swift b/TalerWallet1/Views/OIM/OIMbalances.swift @@ -30,7 +30,6 @@ struct OIMbalances: View { let stack: CallStack // let decimal: Int // 0 for ¥,HUF; 2 for $,€,£; 3 for ﷼,₯ (arabic) @Binding var selectedBalance: Balance? // return user's choice - @Binding var selectedChestIndex: Int? // OIM TODO: use balance @Binding var qrButtonTapped: Bool @Binding var historyTapped: Int? @@ -87,7 +86,6 @@ struct OIMbalances: View { withAnimation(.basic1) { chestOpen = nil selectedBalance = nil - selectedChestIndex = nil available = nil // showingActions = false viewState = .chestsClosed @@ -115,7 +113,6 @@ struct OIMbalances: View { chestOpen = index selectedBalance = balance balanceIndex = index -// selectedChestIndex viewState = .chestIsOpen cash.setIndex(index) available = balance.available @@ -169,7 +166,7 @@ struct OIMbalances: View { !available.isZero } else { false } let topButtons = HStack(alignment: .top) { - if selectedChestIndex == nil { + if selectedBalance == nil { let showQR = viewState == .chestsClosed QRButton(hideTitle: true) { qrButtonTapped = true @@ -209,7 +206,7 @@ struct OIMbalances: View { history: viewState == .historyShown, secondAmount: nil) // appears in OIMEditView Spacer() - let isOpen = selectedChestIndex != nil + let isOpen = selectedBalance != nil ZStack { sidePosition // let scaleMoney = viewState == .chestIsOpen @@ -236,14 +233,10 @@ struct OIMbalances: View { // two savings chests (Euro and Sierra Leone) Spacer() HStack(spacing: 30) { - let balance = controller.balances[0] -// ForEach(controller.balances, id: \.self) { balance in -// OIMbalanceButton(isOpen: selectedBalance == balance) { - - ForEach(0..<OIMcurrencies.count, id: \.self) { index in - let oimCurrency = OIMcurrencies[index] - let itsMe = selectedChestIndex == index - let isClosed = selectedChestIndex == nil + ForEach(Array(controller.balances.enumerated()), id: \.element) { index, balance in + let oimCurrency = oimCurrency(balance) + let itsMe = selectedBalance == balance + let isClosed = selectedBalance == nil let size = isClosed ? 160.0 : OIMbuttonSize ZStack { OIMbalanceButton(isOpen: itsMe, chest: oimCurrency.chest, isFinal: false) { @@ -286,10 +279,8 @@ struct OIMbalances: View { } } .onAppear { -// showingActions = false - if (selectedChestIndex != nil) { - let balance = controller.balances[0] - available = balance.available + if let selectedBalance { + available = selectedBalance.available availableVal = available?.centValue ?? 0 cash.update2(availableVal) // set cash to available // showingActions = true @@ -302,7 +293,6 @@ struct OIMbalances: View { .onDisappear { cash.moveBack() // sending = false - viewState = (selectedChestIndex != nil) ? .chestIsOpen : .chestsClosed } } }