diff options
author | Torsten Grote <t@grobox.de> | 2020-03-20 15:43:23 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-03-20 15:43:23 -0300 |
commit | db8b71418b766258a7a4bda91e496b1b03cb28cd (patch) | |
tree | bd221d1a7ecf77d7752ea7a6086da344e74619cc /cashier/src/main/java/net/taler/cashier/MainViewModel.kt | |
parent | 82b8b57dc16112b859150696199774fcf06655e1 (diff) | |
download | taler-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.kt | 25 |
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 |