Implemented updating selected accounts
This commit is contained in:
parent
17fd1b0474
commit
04fba18316
|
@ -151,7 +151,7 @@ class HomeFragment : Fragment() {
|
|||
}
|
||||
|
||||
private fun updateAccountsTransactions() {
|
||||
presenter.updateAccountsTransactionsAsync { }
|
||||
presenter.updateSelectedBankAccountTransactionsAsync { }
|
||||
}
|
||||
|
||||
private fun handleGetTransactionsResponse(response: GetTransactionsResponse) {
|
||||
|
|
|
@ -136,6 +136,7 @@ open class AccountTransactionsControlView(
|
|||
}
|
||||
|
||||
protected open fun updateAccountTransactions(processingIndicatorButton: ProcessingIndicatorButton) {
|
||||
// TODO: or only update transactions of selected accounts?
|
||||
presenter.updateAccountsTransactionsAsync { transactions ->
|
||||
runLater {
|
||||
processingIndicatorButton.resetIsProcessing()
|
||||
|
|
|
@ -292,6 +292,10 @@ open class BankingPresenter(
|
|||
updateAccountsTransactionsAsync(true) { }
|
||||
}
|
||||
|
||||
open fun updateSelectedBankAccountTransactionsAsync(callback: (GetTransactionsResponse) -> Unit) {
|
||||
updateBanksAccountsTransactionsAsync(selectedBankAccounts, false, callback)
|
||||
}
|
||||
|
||||
protected open fun updateAccountsTransactionsAsync(abortIfTanIsRequired: Boolean = false, callback: (GetTransactionsResponse) -> Unit) {
|
||||
bankingClientsForAccounts.keys.forEach { account ->
|
||||
account.accounts.forEach { bankAccount ->
|
||||
|
@ -302,6 +306,14 @@ open class BankingPresenter(
|
|||
}
|
||||
}
|
||||
|
||||
protected open fun updateBanksAccountsTransactionsAsync(accounts: List<BankAccount>, abortIfTanIsRequired: Boolean = false, callback: (GetTransactionsResponse) -> Unit) {
|
||||
accounts.forEach { bankAccount ->
|
||||
if (bankAccount.supportsRetrievingAccountTransactions) {
|
||||
updateBankAccountTransactionsAsync(bankAccount, abortIfTanIsRequired, callback)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected open fun updateBankAccountTransactionsAsync(bankAccount: BankAccount, abortIfTanIsRequired: Boolean, callback: (GetTransactionsResponse) -> Unit) {
|
||||
val fromDate = bankAccount.lastRetrievedTransactionsTimestamp?.let { Date(it.millisSinceEpoch - OneDayMillis) } // one day before last received transactions
|
||||
|
||||
|
|
|
@ -79,10 +79,24 @@ struct AccountTransactionsDialog: View {
|
|||
}
|
||||
}
|
||||
.showNavigationBarTitle(LocalizedStringKey(title))
|
||||
.navigationBarHidden(false)
|
||||
.navigationBarItems(trailing: Button(
|
||||
action: { self.retrieveTransactions() },
|
||||
label: { Image(systemName: "arrow.2.circlepath") }
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
private func retrieveTransactions() {
|
||||
presenter.updateSelectedBankAccountTransactionsAsync { response in
|
||||
if response.isSuccessful {
|
||||
self.filterTransactions(self.searchText)
|
||||
}
|
||||
else if response.userCancelledAction == false {
|
||||
// TODO: show updating transactions failed message
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func filterTransactions(_ query: String) {
|
||||
self.filteredTransactions = presenter.searchSelectedAccountTransactions(query: query)
|
||||
|
||||
|
|
Loading…
Reference in New Issue