From ffc78da700c5665786d2838752d8465e1b07c72f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 23 Apr 2020 11:52:04 -0300 Subject: [cashier] add offline detection to all failing HTTP requests and show a better error message in these cases --- .../taler/cashier/withdraw/TransactionFragment.kt | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt') diff --git a/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt b/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt index e433540..0726a77 100644 --- a/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt +++ b/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt @@ -36,6 +36,7 @@ import net.taler.cashier.withdraw.WithdrawResult.Error import net.taler.cashier.withdraw.WithdrawResult.InsufficientBalance import net.taler.cashier.withdraw.WithdrawResult.Success import net.taler.common.NfcManager +import net.taler.common.exhaustive import net.taler.common.fadeIn import net.taler.common.fadeOut @@ -101,16 +102,9 @@ class TransactionFragment : Fragment() { .start() } when (result) { - is InsufficientBalance -> { - val c = getColor(requireContext(), R.color.design_default_color_error) - introView.setTextColor(c) - introView.text = getString(R.string.withdraw_error_insufficient_balance) - } - is Error -> { - val c = getColor(requireContext(), R.color.design_default_color_error) - introView.setTextColor(c) - introView.text = result.msg - } + is InsufficientBalance -> setErrorMsg(getString(R.string.withdraw_error_insufficient_balance)) + is WithdrawResult.Offline -> setErrorMsg(getString(R.string.withdraw_error_offline)) + is Error -> setErrorMsg(result.msg) is Success -> { // start NFC nfcManager.setTagString(result.talerUri) @@ -129,7 +123,14 @@ class TransactionFragment : Fragment() { .setDuration(750) .start() } - } + null -> return + }.exhaustive + } + + private fun setErrorMsg(str: String) { + val c = getColor(requireContext(), R.color.design_default_color_error) + introView.setTextColor(c) + introView.text = str } private fun onWithdrawStatusChanged(status: WithdrawStatus?): Any = when (status) { -- cgit v1.2.3