diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-04-12 10:25:22 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2024-04-15 16:03:37 -0300 |
commit | daaf44c9eb10e8713694f980bde53aeaacfe938f (patch) | |
tree | 1a3e8a6c0c4b9be79e9c09738267a2710bdd46c8 /wallet/src/main | |
parent | a2fc10059c3fd04397eb42075d8881fa7a54b4d4 (diff) | |
download | taler-android-daaf44c9eb10e8713694f980bde53aeaacfe938f.tar.gz taler-android-daaf44c9eb10e8713694f980bde53aeaacfe938f.tar.bz2 taler-android-daaf44c9eb10e8713694f980bde53aeaacfe938f.zip |
[wallet] Implement exchange reload
bug 0008298
Diffstat (limited to 'wallet/src/main')
5 files changed, 29 insertions, 0 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt index cb294ac..674632e 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt @@ -33,6 +33,7 @@ interface ExchangeClickListener { fun onExchangeSelected(item: ExchangeItem) fun onManualWithdraw(item: ExchangeItem) fun onPeerReceive(item: ExchangeItem) + fun onExchangeReload(item: ExchangeItem) fun onExchangeDelete(item: ExchangeItem) } @@ -99,6 +100,10 @@ internal class ExchangeAdapter( listener.onPeerReceive(item) true } + R.id.action_reload -> { + listener.onExchangeReload(item) + true + } R.id.action_delete -> { listener.onExchangeDelete(item) true diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt index 5482b5a..dddf8d8 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt @@ -145,6 +145,10 @@ open class ExchangeListFragment : Fragment(), ExchangeClickListener { findNavController().navigate(R.id.action_global_receiveFunds) } + override fun onExchangeReload(item: ExchangeItem) { + exchangeManager.reload(item.exchangeBaseUrl) + } + override fun onExchangeDelete(item: ExchangeItem) { val optionsArray = arrayOf(getString(R.string.exchange_delete_force)) val checkedArray = BooleanArray(1) { false } diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt index eb01cab..5b688dc 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt @@ -95,6 +95,22 @@ class ExchangeManager( } } + fun reload(exchangeUrl: String, force: Boolean = true) = scope.launch { + mProgress.value = true + api.request<Unit>("updateExchangeEntry") { + put("exchangeBaseUrl", exchangeUrl) + put("force", force) + }.onError { + Log.e(TAG, "Error reloading exchange: $it") + mProgress.value = false + mAddError.value = it.toEvent() + }.onSuccess { + mProgress.value = false + Log.d(TAG, "Exchange $exchangeUrl reloaded") + list() + } + } + fun delete(exchangeUrl: String, purge: Boolean = false) = scope.launch { mProgress.value = true api.request<Unit>("deleteExchange") { diff --git a/wallet/src/main/res/menu/exchange.xml b/wallet/src/main/res/menu/exchange.xml index 1d2c2e5..d99ff00 100644 --- a/wallet/src/main/res/menu/exchange.xml +++ b/wallet/src/main/res/menu/exchange.xml @@ -22,6 +22,9 @@ android:id="@+id/action_receive_peer" android:title="@string/receive_peer" /> <item + android:id="@+id/action_reload" + android:title="@string/exchange_reload" /> + <item android:id="@+id/action_delete" android:title="@string/transactions_delete" /> </menu> diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml index ffe175a..8466e2d 100644 --- a/wallet/src/main/res/values/strings.xml +++ b/wallet/src/main/res/values/strings.xml @@ -244,6 +244,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card <string name="exchange_delete">Delete exchange</string> <string name="exchange_delete_force">Force deletion (purge)</string> <string name="exchange_dialog_delete_message">Are you sure you want to delete this exchange? Forcing this operation will result in a loss of funds.</string> + <string name="exchange_reload">Reload information</string> <string name="exchange_not_contacted">Exchange not contacted</string> <string name="exchange_add_url">Enter address of exchange</string> <string name="exchange_add_error">Could not add exchange</string> |