diff options
author | Torsten Grote <t@grobox.de> | 2023-06-12 15:30:21 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-06-12 15:30:21 -0300 |
commit | 19dd896ce8ce4c59ff867778c546eb4e97ca3f38 (patch) | |
tree | bbf43726d479d3f5694ce9cba5aae88b5ddf6fd4 | |
parent | b991a48dc206a006ff384a5194217e29b76dafd0 (diff) | |
download | taler-android-19dd896ce8ce4c59ff867778c546eb4e97ca3f38.tar.gz taler-android-19dd896ce8ce4c59ff867778c546eb4e97ca3f38.tar.bz2 taler-android-19dd896ce8ce4c59ff867778c546eb4e97ca3f38.zip |
[wallet] Properly handle tipping errors
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/tip/PromptTipFragment.kt | 17 | ||||
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/tip/TipManager.kt | 6 |
2 files changed, 9 insertions, 14 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/tip/PromptTipFragment.kt b/wallet/src/main/java/net/taler/wallet/tip/PromptTipFragment.kt index b0f5a35..78969d0 100644 --- a/wallet/src/main/java/net/taler/wallet/tip/PromptTipFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/tip/PromptTipFragment.kt @@ -28,6 +28,7 @@ import com.google.android.material.snackbar.Snackbar.LENGTH_LONG import net.taler.common.Amount import net.taler.common.fadeIn import net.taler.common.fadeOut +import net.taler.common.showError import net.taler.wallet.MainViewModel import net.taler.wallet.R import net.taler.wallet.cleanExchange @@ -54,14 +55,6 @@ class PromptTipFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { tipManager.tipStatus.observe(viewLifecycleOwner, ::onPaymentStatusChanged) - - } - - override fun onDestroy() { - super.onDestroy() - if (!requireActivity().isChangingConfigurations) { - // tipManager.abortTip() - } } private fun showLoading(show: Boolean) { @@ -84,7 +77,7 @@ class PromptTipFragment : Fragment() { ) ui.confirmWithdrawButton.isEnabled = true ui.confirmWithdrawButton.setOnClickListener { - tipManager.confirmTip( + tipManager.acceptTip( payStatus.walletTipId, payStatus.tipAmountRaw.currency ) @@ -109,8 +102,10 @@ class PromptTipFragment : Fragment() { } is TipStatus.Error -> { showLoading(false) - ui.introView.text = getString(R.string.payment_error, payStatus.error) - ui.introView.fadeIn() + // TODO pass TalerErrorInfo for JSON rendering + showError(getString(R.string.payment_error, payStatus.error.userFacingMsg)) + ui.confirmProgressBar.fadeOut() + ui.confirmWithdrawButton.fadeIn() } is TipStatus.None -> { // No tip active diff --git a/wallet/src/main/java/net/taler/wallet/tip/TipManager.kt b/wallet/src/main/java/net/taler/wallet/tip/TipManager.kt index 5548687..3c54d20 100644 --- a/wallet/src/main/java/net/taler/wallet/tip/TipManager.kt +++ b/wallet/src/main/java/net/taler/wallet/tip/TipManager.kt @@ -47,7 +47,7 @@ sealed class TipStatus { ) : TipStatus() // TODO bring user to fulfilment URI (not yet in wallet API) - data class Error(val error: String) : TipStatus() + data class Error(val error: TalerErrorInfo) : TipStatus() data class Success(val currency: String) : TipStatus() } @@ -76,7 +76,7 @@ class TipManager( } } - fun confirmTip(tipId: String, currency: String) = scope.launch { + fun acceptTip(tipId: String, currency: String) = scope.launch { mTipStatus.value = TipStatus.Accepting api.request("acceptTip", ConfirmTipResult.serializer()) { put("walletTipId", tipId) @@ -94,7 +94,7 @@ class TipManager( private fun handleError(operation: String, error: TalerErrorInfo) { Log.e(TAG, "got $operation error result $error") - mTipStatus.value = TipStatus.Error(error.userFacingMsg) + mTipStatus.value = TipStatus.Error(error) } } |