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