summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/settings
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2024-02-25 14:27:51 -0600
committerTorsten Grote <t@grobox.de>2024-02-27 17:17:00 -0300
commitca4334d29ff49c0e8962ea775135b2d09351a4af (patch)
treef3f0a2992eb6bb50d3dfd39788e5c6cb9935f643 /wallet/src/main/java/net/taler/wallet/settings
parent30eb61535146f644a06ea2d465e2fd210358d72c (diff)
downloadtaler-android-ca4334d29ff49c0e8962ea775135b2d09351a4af.tar.gz
taler-android-ca4334d29ff49c0e8962ea775135b2d09351a4af.tar.bz2
taler-android-ca4334d29ff49c0e8962ea775135b2d09351a4af.zip
[wallet] Prevent UI state from reacting before clearDb response
bug 0008455
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/settings')
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt4
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/SettingsManager.kt16
2 files changed, 19 insertions, 1 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
index fcf34f5..a9881bf 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
@@ -167,7 +167,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
MaterialAlertDialogBuilder(requireContext(), R.style.MaterialAlertDialog_Material3)
.setMessage(R.string.settings_dialog_reset_message)
.setNegativeButton(R.string.reset) { _, _ ->
- model.dangerouslyReset()
+ settingsManager.clearDb {
+ model.dangerouslyReset()
+ }
Snackbar.make(requireView(), getString(R.string.settings_alert_reset_done), LENGTH_SHORT).show()
}
.setPositiveButton(R.string.cancel) { _, _ ->
diff --git a/wallet/src/main/java/net/taler/wallet/settings/SettingsManager.kt b/wallet/src/main/java/net/taler/wallet/settings/SettingsManager.kt
index 0b4cbe9..8331d59 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SettingsManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/settings/SettingsManager.kt
@@ -144,6 +144,18 @@ class SettingsManager(
}
}
+ fun clearDb(onSuccess: () -> Unit) {
+ scope.launch {
+ when (val response = api.rawRequest("clearDb")) {
+ is Success -> onSuccess()
+ is Error -> {
+ Log.e(SettingsManager::class.simpleName, "Error cleaning db: ${response.error}")
+ onDbClearError()
+ }
+ }
+ }
+ }
+
private fun onDbExportError() {
Toast.makeText(context, R.string.settings_db_export_error, LENGTH_LONG).show()
}
@@ -152,4 +164,8 @@ class SettingsManager(
Toast.makeText(context, R.string.settings_db_import_error, LENGTH_LONG).show()
}
+ private fun onDbClearError() {
+ Toast.makeText(context, R.string.settings_db_clear_error, LENGTH_LONG).show()
+ }
+
}