From 8815105bf2462787885214a12af927d484226f21 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 30 Jul 2020 16:40:23 -0300 Subject: Split out common code into multiplatform Kotlin library --- cashier/.gitlab-ci.yml | 1 + cashier/build.gradle | 2 +- cashier/src/main/java/net/taler/cashier/MainViewModel.kt | 16 +++++++++------- 3 files changed, 11 insertions(+), 8 deletions(-) (limited to 'cashier') diff --git a/cashier/.gitlab-ci.yml b/cashier/.gitlab-ci.yml index 6a7baed..6b73dee 100644 --- a/cashier/.gitlab-ci.yml +++ b/cashier/.gitlab-ci.yml @@ -6,6 +6,7 @@ cashier_test: changes: - cashier/**/* - taler-kotlin-common/**/* + - taler-kotlin-android/**/* - build.gradle script: ./gradlew :cashier:check :cashier:assembleRelease artifacts: diff --git a/cashier/build.gradle b/cashier/build.gradle index 0d06c60..641a039 100644 --- a/cashier/build.gradle +++ b/cashier/build.gradle @@ -54,7 +54,7 @@ android { } dependencies { - implementation project(":taler-kotlin-common") + implementation project(":taler-kotlin-android") implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.security:security-crypto:1.0.0-rc02' implementation 'com.google.android.material:material:1.1.0' diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt index c8d9a3b..a4fd35e 100644 --- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt +++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt @@ -40,6 +40,7 @@ import net.taler.common.isOnline private val TAG = MainViewModel::class.java.simpleName +private const val VERSION_BANK = "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" @@ -86,20 +87,21 @@ class MainViewModel(private val app: Application) : AndroidViewModel(app) { fun checkAndSaveConfig(config: Config) { mConfigResult.value = null viewModelScope.launch(Dispatchers.IO) { - val url = "${config.bankUrl}/accounts/${config.username}/balance" + val url = "${config.bankUrl}/config" Log.d(TAG, "Checking config: $url") val result = when (val response = makeJsonGetRequest(url, config)) { is HttpJsonResult.Success -> { - val balance = response.json.getString("balance") + val version = response.json.getString("version") + // TODO check if version is compatible + val currency = response.json.getString("currency") try { - val amount = SignedAmount.fromJSONString(balance) - mCurrency.postValue(amount.amount.currency) - prefs.edit().putString(PREF_KEY_CURRENCY, amount.amount.currency).apply() + mCurrency.postValue(currency) + prefs.edit().putString(PREF_KEY_CURRENCY, currency).apply() // save config saveConfig(config) ConfigResult.Success - } catch (e: AmountParserException) { - ConfigResult.Error(false, "Invalid Amount: $balance") + } catch (e: Exception) { + ConfigResult.Error(false, "Invalid Config: ${response.json}") } } is HttpJsonResult.Error -> { -- cgit v1.2.3