taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

commit 88826e2ccf7ee93951ac1f7f8b89fe3830d58e79
parent db126b71f6defd76030ff7347d7032021aa15aae
Author: Iván Ávalos <avalos@disroot.org>
Date:   Fri, 28 Jun 2024 14:41:43 -0600

[wallet] Popup confirmation for integration test

Diffstat:
Mwallet/src/main/java/net/taler/wallet/MainViewModel.kt | 4++--
Mwallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt | 8+++++++-
Mwallet/src/main/res/values/strings.xml | 1+
3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt @@ -269,7 +269,7 @@ class MainViewModel( } } - fun runIntegrationTest() { + fun runIntegrationTest(onError: (error: TalerErrorInfo) -> Unit) { viewModelScope.launch { api.request<Unit>("runIntegrationTestV2") { put("amountToWithdraw", "KUDOS:42") @@ -278,7 +278,7 @@ class MainViewModel( put("exchangeBaseUrl", "https://exchange.demo.taler.net/") put("merchantBaseUrl", "https://backend.demo.taler.net/") put("merchantAuthToken", "secret-token:sandbox") - } + }.onError(onError) } } diff --git a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt @@ -21,10 +21,12 @@ import android.view.View import androidx.activity.result.contract.ActivityResultContracts.OpenDocument import androidx.activity.result.contract.ActivityResultContracts.CreateDocument import androidx.fragment.app.activityViewModels +import androidx.navigation.fragment.findNavController import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreferenceCompat import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_SHORT import com.google.android.material.snackbar.Snackbar import net.taler.common.showError @@ -143,7 +145,11 @@ class SettingsFragment : PreferenceFragmentCompat() { true } prefTest.setOnPreferenceClickListener { - model.runIntegrationTest() + model.runIntegrationTest { error -> + requireActivity().showError(error) + } + Snackbar.make(requireView(), getString(R.string.settings_test_running), LENGTH_LONG).show() + findNavController().navigate(R.id.nav_main) true } prefReset.setOnPreferenceClickListener { diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml @@ -329,6 +329,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card <string name="settings_reset">Reset Wallet (dangerous!)</string> <string name="settings_reset_summary">Throws away your money</string> <string name="settings_test">Run integration test</string> + <string name="settings_test_running">The integration test is now running</string> <string name="settings_test_summary">Performs test transactions with demo setup</string> <string name="settings_version_app">App Version</string> <string name="settings_version_core">Wallet Core Version</string>