From c59243c9bdabf07137ad0f070b6ecbde57e66466 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 1 Sep 2020 09:54:21 -0300 Subject: [wallet] don't crash on serialization errors from wallet-core This should not be necessary if we had a stable API with documentated and versioned changes, but well... --- .idea/runConfigurations/taler_android__check_.xml | 21 +++++++++++++++++++++ anastasis-ui/src/main/res/layout/fragment_intro.xml | 4 ++-- build.gradle | 2 ++ cashier/build.gradle | 8 ++++---- merchant-terminal/build.gradle | 6 +++--- wallet/build.gradle | 8 ++++---- .../net/taler/wallet/backend/WalletBackendApi.kt | 15 +++++++++++---- .../taler/wallet/payment/PaymentResponsesTest.kt | 1 - 8 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 .idea/runConfigurations/taler_android__check_.xml diff --git a/.idea/runConfigurations/taler_android__check_.xml b/.idea/runConfigurations/taler_android__check_.xml new file mode 100644 index 0000000..5d12227 --- /dev/null +++ b/.idea/runConfigurations/taler_android__check_.xml @@ -0,0 +1,21 @@ + + + + + + + true + + + \ No newline at end of file diff --git a/anastasis-ui/src/main/res/layout/fragment_intro.xml b/anastasis-ui/src/main/res/layout/fragment_intro.xml index 262287b..32b5b33 100644 --- a/anastasis-ui/src/main/res/layout/fragment_intro.xml +++ b/anastasis-ui/src/main/res/layout/fragment_intro.xml @@ -24,7 +24,6 @@ android:layout_width="0dp" android:layout_height="0dp" android:layout_margin="16dp" - android:tint="@color/green" app:layout_constraintBottom_toTopOf="@+id/textView" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" @@ -33,7 +32,8 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="1.0" app:layout_constraintVertical_chainStyle="spread" - app:srcCompat="@drawable/ic_baseline_cloud_circle" /> + app:srcCompat="@drawable/ic_baseline_cloud_circle" + app:tint="@color/green" /> val response = if (isError) { - val error = json.decodeFromString(WalletErrorInfo.serializer(), message.toString()) + val error = + json.decodeFromString(WalletErrorInfo.serializer(), message.toString()) WalletResponse.Error(error) } else { - @Suppress("UNCHECKED_CAST") // if serializer is null, T must be Unit - val t: T = serializer?.let { json.decodeFromString(serializer, message.toString()) } ?: Unit as T - WalletResponse.Success(t) + try { + val t: T = serializer?.let { + json.decodeFromString(serializer, message.toString()) + } ?: Unit as T + WalletResponse.Success(t) + } catch (e: Exception) { + val info = WalletErrorInfo(0, "", e.toString(), null) + WalletResponse.Error(info) + } } cont.resume(response) } diff --git a/wallet/src/test/java/net/taler/wallet/payment/PaymentResponsesTest.kt b/wallet/src/test/java/net/taler/wallet/payment/PaymentResponsesTest.kt index 15702c6..fbdc07d 100644 --- a/wallet/src/test/java/net/taler/wallet/payment/PaymentResponsesTest.kt +++ b/wallet/src/test/java/net/taler/wallet/payment/PaymentResponsesTest.kt @@ -57,7 +57,6 @@ class PaymentResponsesTest { "max_wire_fee": "CHF:0.1", "max_fee": "CHF:0.1", "wire_fee_amortization": 10, - "merchant_base_url": "https:\/\/backend.chf.taler.net\/instances\/department\/", "merchant": { "name": "BFH Department Technik und Informatik", "instance": "department" -- cgit v1.2.3