diff options
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> |