summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet')
-rw-r--r--wallet/src/main/java/net/taler/wallet/MainViewModel.kt2
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt10
-rw-r--r--wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt14
3 files changed, 20 insertions, 6 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
index 9e49f54..7bb6ad9 100644
--- a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
@@ -132,7 +132,7 @@ class MainViewModel(val app: Application) : AndroidViewModel(app) {
@UiThread
fun dangerouslyReset() {
api.sendRequest("reset")
- withdrawManager.testWithdrawalInProgress.value = false
+ withdrawManager.testWithdrawalStatus.value = null
mBalances.value = emptyList()
}
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 d2f30aa..bd6ce1a 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
@@ -25,6 +25,7 @@ import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreferenceCompat
import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_SHORT
import com.google.android.material.snackbar.Snackbar
+import net.taler.common.showError
import net.taler.common.showLogViewer
import net.taler.common.toRelativeTime
import net.taler.wallet.BuildConfig.FLAVOR
@@ -33,6 +34,7 @@ import net.taler.wallet.BuildConfig.VERSION_NAME
import net.taler.wallet.BuildConfig.WALLET_CORE_VERSION
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
+import net.taler.wallet.withdraw.WithdrawTestStatus
class SettingsFragment : PreferenceFragmentCompat() {
@@ -98,9 +100,15 @@ class SettingsFragment : PreferenceFragmentCompat() {
true
}
- withdrawManager.testWithdrawalInProgress.observe(viewLifecycleOwner, { loading ->
+ withdrawManager.testWithdrawalStatus.observe(viewLifecycleOwner, { status ->
+ if (status == null) return@observe
+ val loading = status is WithdrawTestStatus.Withdrawing
prefWithdrawTest.isEnabled = !loading
model.showProgressBar.value = loading
+ if (status is WithdrawTestStatus.Error) {
+ requireActivity().showError(R.string.withdraw_error_test, status.message)
+ }
+ withdrawManager.testWithdrawalStatus.value = null
})
prefWithdrawTest.setOnPreferenceClickListener {
withdrawManager.withdrawTestkudos()
diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt b/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt
index 5e11c04..5afb125 100644
--- a/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/withdraw/WithdrawManager.kt
@@ -59,6 +59,12 @@ sealed class WithdrawStatus {
data class Error(val message: String?) : WithdrawStatus()
}
+sealed class WithdrawTestStatus {
+ object Withdrawing : WithdrawTestStatus()
+ object Success : WithdrawTestStatus()
+ data class Error(val message: String) : WithdrawTestStatus()
+}
+
@Serializable
data class WithdrawalDetailsForUri(
val amount: Amount,
@@ -84,7 +90,7 @@ class WithdrawManager(
) {
val withdrawStatus = MutableLiveData<WithdrawStatus>()
- val testWithdrawalInProgress = MutableLiveData(false)
+ val testWithdrawalStatus = MutableLiveData<WithdrawTestStatus>()
private val _exchangeSelection = MutableLiveData<Event<ExchangeSelection>>()
val exchangeSelection: LiveData<Event<ExchangeSelection>> = _exchangeSelection
@@ -92,11 +98,11 @@ class WithdrawManager(
private set
fun withdrawTestkudos() = scope.launch {
- testWithdrawalInProgress.value = true
+ testWithdrawalStatus.value = WithdrawTestStatus.Withdrawing
api.request<Unit>("withdrawTestkudos").onError {
- testWithdrawalInProgress.postValue(false)
+ testWithdrawalStatus.value = WithdrawTestStatus.Error(it.userFacingMsg)
}.onSuccess {
- testWithdrawalInProgress.postValue(false)
+ testWithdrawalStatus.value = WithdrawTestStatus.Success
}
}