summaryrefslogtreecommitdiff
path: root/wallet
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2024-04-12 10:25:22 -0600
committerTorsten Grote <t@grobox.de>2024-04-15 16:03:37 -0300
commitdaaf44c9eb10e8713694f980bde53aeaacfe938f (patch)
tree1a3e8a6c0c4b9be79e9c09738267a2710bdd46c8 /wallet
parenta2fc10059c3fd04397eb42075d8881fa7a54b4d4 (diff)
downloadtaler-android-daaf44c9eb10e8713694f980bde53aeaacfe938f.tar.gz
taler-android-daaf44c9eb10e8713694f980bde53aeaacfe938f.tar.bz2
taler-android-daaf44c9eb10e8713694f980bde53aeaacfe938f.zip
[wallet] Implement exchange reload
bug 0008298
Diffstat (limited to 'wallet')
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt5
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt4
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeManager.kt16
-rw-r--r--wallet/src/main/res/menu/exchange.xml3
-rw-r--r--wallet/src/main/res/values/strings.xml1
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>