diff options
author | Torsten Grote <t@grobox.de> | 2020-04-22 15:10:08 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-04-22 15:10:08 -0300 |
commit | d57645954dda2d478fe09dd0135183e1b3526db0 (patch) | |
tree | 3149d52c2b020844fe9031ee8b5a69cdece6e0a3 /cashier/src/main/java/net/taler/cashier/MainViewModel.kt | |
parent | f920fa7fa12db5d6fd40844ffb8402426d0a2b07 (diff) | |
download | taler-android-d57645954dda2d478fe09dd0135183e1b3526db0.tar.gz taler-android-d57645954dda2d478fe09dd0135183e1b3526db0.tar.bz2 taler-android-d57645954dda2d478fe09dd0135183e1b3526db0.zip |
[cashier] expose internal error messages to UI
Diffstat (limited to 'cashier/src/main/java/net/taler/cashier/MainViewModel.kt')
-rw-r--r-- | cashier/src/main/java/net/taler/cashier/MainViewModel.kt | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt index 2b2d5f7..3587e95 100644 --- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt +++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt @@ -97,14 +97,13 @@ class MainViewModel(private val app: Application) : AndroidViewModel(app) { prefs.edit().putString(PREF_KEY_CURRENCY, amount.amount.currency).apply() // save config saveConfig(config) - ConfigResult(true) + ConfigResult.Success } catch (e: AmountParserException) { - ConfigResult(false) + ConfigResult.Error(false, "Invalid Amount: $balance") } } is HttpJsonResult.Error -> { - val authError = response.statusCode == 401 - ConfigResult(false, authError) + ConfigResult.Error(response.statusCode == 401, response.msg) } } mConfigResult.postValue(result) @@ -132,11 +131,11 @@ class MainViewModel(private val app: Application) : AndroidViewModel(app) { try { BalanceResult.Success(SignedAmount.fromJSONString(balance)) } catch (e: AmountParserException) { - BalanceResult.Error + BalanceResult.Error("invalid amount: $balance") } } is HttpJsonResult.Error -> { - if (app.isOnline()) BalanceResult.Error + if (app.isOnline()) BalanceResult.Error(response.msg) else BalanceResult.Offline } } @@ -155,4 +154,7 @@ data class Config( val password: String ) -class ConfigResult(val success: Boolean, val authError: Boolean = false) +sealed class ConfigResult { + class Error(val authError: Boolean, val msg: String) : ConfigResult() + object Success : ConfigResult() +} |