summaryrefslogtreecommitdiff
path: root/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-04-22 15:10:08 -0300
committerTorsten Grote <t@grobox.de>2020-04-22 15:10:08 -0300
commitd57645954dda2d478fe09dd0135183e1b3526db0 (patch)
tree3149d52c2b020844fe9031ee8b5a69cdece6e0a3 /cashier/src/main/java/net/taler/cashier/MainViewModel.kt
parentf920fa7fa12db5d6fd40844ffb8402426d0a2b07 (diff)
downloadtaler-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.kt16
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()
+}