summaryrefslogtreecommitdiff
path: root/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-03-20 15:43:23 -0300
committerTorsten Grote <t@grobox.de>2020-03-20 15:43:23 -0300
commitdb8b71418b766258a7a4bda91e496b1b03cb28cd (patch)
treebd221d1a7ecf77d7752ea7a6086da344e74619cc /cashier/src/main/java/net/taler/cashier/MainViewModel.kt
parent82b8b57dc16112b859150696199774fcf06655e1 (diff)
downloadtaler-android-db8b71418b766258a7a4bda91e496b1b03cb28cd.tar.gz
taler-android-db8b71418b766258a7a4bda91e496b1b03cb28cd.tar.bz2
taler-android-db8b71418b766258a7a4bda91e496b1b03cb28cd.zip
Let all apps use the same Amount class
The wallet now also uses taler-kotlin-common
Diffstat (limited to 'cashier/src/main/java/net/taler/cashier/MainViewModel.kt')
-rw-r--r--cashier/src/main/java/net/taler/cashier/MainViewModel.kt25
1 files changed, 17 insertions, 8 deletions
diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
index 6cd12ff..2b2d5f7 100644
--- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
+++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
@@ -34,7 +34,8 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.taler.cashier.HttpHelper.makeJsonGetRequest
import net.taler.cashier.withdraw.WithdrawManager
-import net.taler.common.Amount.Companion.fromStringSigned
+import net.taler.common.AmountParserException
+import net.taler.common.SignedAmount
import net.taler.common.isOnline
private val TAG = MainViewModel::class.java.simpleName
@@ -90,12 +91,16 @@ class MainViewModel(private val app: Application) : AndroidViewModel(app) {
val result = when (val response = makeJsonGetRequest(url, config)) {
is HttpJsonResult.Success -> {
val balance = response.json.getString("balance")
- val amount = fromStringSigned(balance)!!
- mCurrency.postValue(amount.currency)
- prefs.edit().putString(PREF_KEY_CURRENCY, amount.currency).apply()
- // save config
- saveConfig(config)
- ConfigResult(true)
+ try {
+ val amount = SignedAmount.fromJSONString(balance)
+ mCurrency.postValue(amount.amount.currency)
+ prefs.edit().putString(PREF_KEY_CURRENCY, amount.amount.currency).apply()
+ // save config
+ saveConfig(config)
+ ConfigResult(true)
+ } catch (e: AmountParserException) {
+ ConfigResult(false)
+ }
}
is HttpJsonResult.Error -> {
val authError = response.statusCode == 401
@@ -124,7 +129,11 @@ class MainViewModel(private val app: Application) : AndroidViewModel(app) {
val result = when (val response = makeJsonGetRequest(url, config)) {
is HttpJsonResult.Success -> {
val balance = response.json.getString("balance")
- fromStringSigned(balance)?.let { BalanceResult.Success(it) } ?: BalanceResult.Error
+ try {
+ BalanceResult.Success(SignedAmount.fromJSONString(balance))
+ } catch (e: AmountParserException) {
+ BalanceResult.Error
+ }
}
is HttpJsonResult.Error -> {
if (app.isOnline()) BalanceResult.Error