gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]