[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] branch master updated: [cashier] adapt to latest b
From: |
gnunet |
Subject: |
[taler-taler-android] branch master updated: [cashier] adapt to latest bank API changes (no more SignedAmount) |
Date: |
Wed, 26 Aug 2020 14:58:24 +0200 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository taler-android.
The following commit(s) were added to refs/heads/master by this push:
new c8dbdaf [cashier] adapt to latest bank API changes (no more
SignedAmount)
c8dbdaf is described below
commit c8dbdaf02d200287cc1242f4826a6c9637398640
Author: Torsten Grote <t@grobox.de>
AuthorDate: Wed Aug 26 09:54:47 2020 -0300
[cashier] adapt to latest bank API changes (no more SignedAmount)
---
.../main/java/net/taler/cashier/BalanceFragment.kt | 1 -
.../src/main/java/net/taler/cashier/MainViewModel.kt | 20 +++++++++++++-------
.../src/main/java/net/taler/cashier}/SignedAmount.kt | 14 +-------------
taler-kotlin-android/build.gradle | 2 +-
4 files changed, 15 insertions(+), 22 deletions(-)
diff --git a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
index 5b963a0..d899e7d 100644
--- a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
+++ b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
@@ -33,7 +33,6 @@ import kotlinx.android.synthetic.main.fragment_balance.*
import
net.taler.cashier.BalanceFragmentDirections.Companion.actionBalanceFragmentToTransactionFragment
import net.taler.cashier.withdraw.LastTransaction
import net.taler.cashier.withdraw.WithdrawStatus
-import net.taler.common.SignedAmount
import net.taler.common.exhaustive
import net.taler.common.fadeIn
import net.taler.common.fadeOut
diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
index a0796df..a25467b 100644
--- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
+++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
@@ -34,9 +34,9 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.taler.cashier.HttpHelper.makeJsonGetRequest
import net.taler.cashier.withdraw.WithdrawManager
-import net.taler.common.SignedAmount
import net.taler.common.getIncompatibleStringOrNull
import net.taler.common.isOnline
+import net.taler.lib.common.Amount
import net.taler.lib.common.AmountParserException
import net.taler.lib.common.Version
@@ -94,8 +94,7 @@ class MainViewModel(private val app: Application) :
AndroidViewModel(app) {
val result = when (val response = makeJsonGetRequest(url, config))
{
is HttpJsonResult.Success -> {
// check if bank's version is compatible with app
- // TODO use real version response when fixed in bank
- val version = "0:0:0" // response.json.getString("version")
+ val version = response.json.getString("version")
val versionIncompatible =
VERSION_BANK.getIncompatibleStringOrNull(app, version)
if (versionIncompatible != null) {
ConfigResult.Error(false, versionIncompatible)
@@ -141,11 +140,18 @@ class MainViewModel(private val app: Application) :
AndroidViewModel(app) {
Log.d(TAG, "Checking balance at $url")
val result = when (val response = makeJsonGetRequest(url, config)) {
is HttpJsonResult.Success -> {
- val balance = response.json.getString("balance")
try {
- BalanceResult.Success(SignedAmount.fromJSONString(balance))
- } catch (e: AmountParserException) {
- BalanceResult.Error("invalid amount: $balance")
+ val balance = response.json.getString("balance")
+ val positive = when (val creditDebitIndicator =
+ response.json.getString("credit_debit_indicator")) {
+ "credit" -> true
+ "debit" -> false
+ else -> throw AmountParserException("Unexpected
credit_debit_indicator: $creditDebitIndicator")
+ }
+ BalanceResult.Success(SignedAmount(positive,
Amount.fromJSONString(balance)))
+ } catch (e: Exception) {
+ Log.e(TAG, "Error parsing balance", e)
+ BalanceResult.Error("Invalid
amount:\n${response.json.toString(2)}")
}
}
is HttpJsonResult.Error -> {
diff --git
a/taler-kotlin-android/src/main/java/net/taler/common/SignedAmount.kt
b/cashier/src/main/java/net/taler/cashier/SignedAmount.kt
similarity index 62%
rename from taler-kotlin-android/src/main/java/net/taler/common/SignedAmount.kt
rename to cashier/src/main/java/net/taler/cashier/SignedAmount.kt
index e95685a..e79acfd 100644
--- a/taler-kotlin-android/src/main/java/net/taler/common/SignedAmount.kt
+++ b/cashier/src/main/java/net/taler/cashier/SignedAmount.kt
@@ -14,27 +14,15 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.common
+package net.taler.cashier
-import android.annotation.SuppressLint
import net.taler.lib.common.Amount
-import net.taler.lib.common.AmountParserException
data class SignedAmount(
val positive: Boolean,
val amount: Amount
) {
- companion object {
- @Throws(AmountParserException::class)
- @SuppressLint("CheckedExceptions")
- fun fromJSONString(str: String): SignedAmount = when (str.substring(0,
1)) {
- "-" -> SignedAmount(false, Amount.fromJSONString(str.substring(1)))
- "+" -> SignedAmount(true, Amount.fromJSONString(str.substring(1)))
- else -> SignedAmount(true, Amount.fromJSONString(str))
- }
- }
-
override fun toString(): String {
return if (positive) "$amount" else "-$amount"
}
diff --git a/taler-kotlin-android/build.gradle
b/taler-kotlin-android/build.gradle
index 6d992a0..8036800 100644
--- a/taler-kotlin-android/build.gradle
+++ b/taler-kotlin-android/build.gradle
@@ -68,7 +68,7 @@ dependencies {
// JSON parsing and serialization
api "org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0-RC"
- lintPublish 'com.github.thirdegg:lint-rules:0.0.4-alpha'
+ lintPublish 'com.github.thirdegg:lint-rules:0.0.5-alpha'
testImplementation 'junit:junit:4.13'
testImplementation 'org.json:json:20200518'
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-taler-android] branch master updated: [cashier] adapt to latest bank API changes (no more SignedAmount),
gnunet <=