gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] 01/03: [cashier] check version from bank when conf


From: gnunet
Subject: [taler-taler-android] 01/03: [cashier] check version from bank when configuring
Date: Fri, 31 Jul 2020 20:40:17 +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.

commit dabc0ce62c93f8d78ed800e0f3c63b7fd5cb9e25
Author: Torsten Grote <t@grobox.de>
AuthorDate: Fri Jul 31 09:29:03 2020 -0300

    [cashier] check version from bank when configuring
    
    real version isn't checked because bank reports invalid version syntax
---
 .../main/java/net/taler/cashier/MainViewModel.kt   | 32 ++++++++++++++--------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt 
b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
index a4fd35e..1740494 100644
--- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
+++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
@@ -36,11 +36,13 @@ import net.taler.cashier.HttpHelper.makeJsonGetRequest
 import net.taler.cashier.withdraw.WithdrawManager
 import net.taler.common.AmountParserException
 import net.taler.common.SignedAmount
+import net.taler.common.Version
+import net.taler.common.getIncompatibleStringOrNull
 import net.taler.common.isOnline
 
 private val TAG = MainViewModel::class.java.simpleName
 
-private const val VERSION_BANK = "0:0:0"
+private val VERSION_BANK = Version(0, 0, 0)
 private const val PREF_NAME = "net.taler.cashier.prefs"
 private const val PREF_KEY_BANK_URL = "bankUrl"
 private const val PREF_KEY_USERNAME = "username"
@@ -91,17 +93,23 @@ class MainViewModel(private val app: Application) : 
AndroidViewModel(app) {
             Log.d(TAG, "Checking config: $url")
             val result = when (val response = makeJsonGetRequest(url, config)) 
{
                 is HttpJsonResult.Success -> {
-                    val version = response.json.getString("version")
-                    // TODO check if version is compatible
-                    val currency = response.json.getString("currency")
-                    try {
-                        mCurrency.postValue(currency)
-                        prefs.edit().putString(PREF_KEY_CURRENCY, 
currency).apply()
-                        // save config
-                        saveConfig(config)
-                        ConfigResult.Success
-                    } catch (e: Exception) {
-                        ConfigResult.Error(false, "Invalid Config: 
${response.json}")
+                    // 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 versionIncompatible = 
VERSION_BANK.getIncompatibleStringOrNull(app, version)
+                    if (versionIncompatible != null) {
+                        ConfigResult.Error(false, versionIncompatible)
+                    } else {
+                        val currency = response.json.getString("currency")
+                        try {
+                            mCurrency.postValue(currency)
+                            prefs.edit().putString(PREF_KEY_CURRENCY, 
currency).apply()
+                            // save config
+                            saveConfig(config)
+                            ConfigResult.Success
+                        } catch (e: Exception) {
+                            ConfigResult.Error(false, "Invalid Config: 
${response.json}")
+                        }
                     }
                 }
                 is HttpJsonResult.Error -> {

-- 
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]