summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wallet/src/main/java/net/taler/wallet/MainViewModel.kt3
-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
-rw-r--r--wallet/src/main/res/values/strings.xml1
4 files changed, 20 insertions, 4 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
index c28c027..b58636e 100644
--- a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
@@ -155,9 +155,6 @@ class MainViewModel(
@UiThread
fun dangerouslyReset() {
- viewModelScope.launch {
- api.sendRequest("clearDb")
- }
withdrawManager.testWithdrawalStatus.value = null
balanceManager.resetBalances()
}
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()
+ }
+
}
diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml
index fac6977..15461c7 100644
--- a/wallet/src/main/res/values/strings.xml
+++ b/wallet/src/main/res/values/strings.xml
@@ -277,6 +277,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card
<string name="settings_db_import_summary">Restore database from file</string>
<string name="settings_db_export_error">Error exporting database</string>
<string name="settings_db_import_error">Error importing database</string>
+ <string name="settings_db_clear_error">Error cleaning database</string>
<string name="settings_db_export_success">Database exported to file</string>
<string name="settings_db_import_success">Database imported from file</string>
<string name="settings_version_app">App Version</string>