diff options
-rw-r--r-- | cashier/.gitlab-ci.yml | 4 | ||||
-rw-r--r-- | cashier/src/main/AndroidManifest.xml | 4 | ||||
-rw-r--r-- | cashier/src/main/java/net/taler/cashier/ConfigFragment.kt | 3 | ||||
-rw-r--r-- | cashier/src/main/java/net/taler/cashier/HttpHelper.kt | 4 | ||||
-rw-r--r-- | cashier/src/main/java/net/taler/cashier/MainActivity.kt | 4 | ||||
-rw-r--r-- | cashier/src/main/res/drawable/ic_launcher_foreground.xml | 16 | ||||
-rw-r--r-- | cashier/src/main/res/layout-w550dp/fragment_transaction.xml | 3 | ||||
-rw-r--r-- | cashier/src/main/res/layout/activity_main.xml | 3 | ||||
-rw-r--r-- | cashier/src/main/res/layout/fragment_balance.xml | 2 | ||||
-rw-r--r-- | cashier/src/main/res/layout/fragment_error.xml | 3 | ||||
-rw-r--r-- | cashier/src/main/res/layout/fragment_transaction.xml | 3 | ||||
-rw-r--r-- | cashier/src/main/res/menu/balance.xml | 3 | ||||
-rw-r--r-- | cashier/src/main/res/mipmap-anydpi-v26/ic_launcher.xml | 4 | ||||
-rw-r--r-- | cashier/src/main/res/values-night/colors.xml | 3 |
14 files changed, 28 insertions, 31 deletions
diff --git a/cashier/.gitlab-ci.yml b/cashier/.gitlab-ci.yml index 1b82411..792f3c5 100644 --- a/cashier/.gitlab-ci.yml +++ b/cashier/.gitlab-ci.yml @@ -24,8 +24,8 @@ cashier_deploy_nightly: - test -z "$DEBUG_KEYSTORE" && exit 0 # Rename nightly app - sed -i - 's,<string name="app_name">.*</string>,<string name="app_name">Cashier Nightly</string>,' - cashier/src/main/res/values*/strings.xml + 's,<string name="app_name">.*</string>,<string name="app_name">Cashier Nightly</string>,' + cashier/src/main/res/values*/strings.xml # Set time-based version code - export versionCode=$(date '+%s') - sed -i "s,^\(\s*versionCode\) *[0-9].*,\1 $versionCode," cashier/build.gradle diff --git a/cashier/src/main/AndroidManifest.xml b/cashier/src/main/AndroidManifest.xml index bdc5ec0..1d8b810 100644 --- a/cashier/src/main/AndroidManifest.xml +++ b/cashier/src/main/AndroidManifest.xml @@ -5,12 +5,12 @@ <application android:allowBackup="true" + android:fullBackupContent="@xml/backup_descriptor" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:fullBackupContent="@xml/backup_descriptor" + android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/AppTheme" - android:roundIcon="@mipmap/ic_launcher" tools:ignore="GoogleAppIndexingWarning"> <activity diff --git a/cashier/src/main/java/net/taler/cashier/ConfigFragment.kt b/cashier/src/main/java/net/taler/cashier/ConfigFragment.kt index 2225ff6..ccbb1a6 100644 --- a/cashier/src/main/java/net/taler/cashier/ConfigFragment.kt +++ b/cashier/src/main/java/net/taler/cashier/ConfigFragment.kt @@ -94,7 +94,8 @@ class ConfigFragment : Fragment() { // focus on password if it is the only missing value (like after locking) if (urlView.editText!!.text.isNotBlank() && usernameView.editText!!.text.isNotBlank() - && passwordView.editText!!.text.isBlank()) { + && passwordView.editText!!.text.isBlank() + ) { passwordView.editText!!.requestFocus() } } diff --git a/cashier/src/main/java/net/taler/cashier/HttpHelper.kt b/cashier/src/main/java/net/taler/cashier/HttpHelper.kt index 43ba4d8..63eaddf 100644 --- a/cashier/src/main/java/net/taler/cashier/HttpHelper.kt +++ b/cashier/src/main/java/net/taler/cashier/HttpHelper.kt @@ -39,8 +39,8 @@ object HttpHelper { .build() val response = try { getHttpClient(config.username, config.password) - .newCall(request) - .execute() + .newCall(request) + .execute() } catch (e: Exception) { Log.e(TAG, "Error retrieving $url", e) return HttpJsonResult.Error(500) diff --git a/cashier/src/main/java/net/taler/cashier/MainActivity.kt b/cashier/src/main/java/net/taler/cashier/MainActivity.kt index b238054..0559b38 100644 --- a/cashier/src/main/java/net/taler/cashier/MainActivity.kt +++ b/cashier/src/main/java/net/taler/cashier/MainActivity.kt @@ -17,7 +17,9 @@ package net.taler.cashier import android.content.Intent -import android.content.Intent.* +import android.content.Intent.ACTION_MAIN +import android.content.Intent.CATEGORY_HOME +import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import android.os.Bundle import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity diff --git a/cashier/src/main/res/drawable/ic_launcher_foreground.xml b/cashier/src/main/res/drawable/ic_launcher_foreground.xml index fbaac05..06c4ddd 100644 --- a/cashier/src/main/res/drawable/ic_launcher_foreground.xml +++ b/cashier/src/main/res/drawable/ic_launcher_foreground.xml @@ -4,12 +4,12 @@ android:height="108dp" android:viewportWidth="48" android:viewportHeight="48"> - <group - android:translateX="12" - android:translateY="12"> - <path - android:pathData="M6,3L6,6L9,6L9,7L6.25,7C5.05,7 4.0508,8 4.0508,9L3.5,16L20.5,16L20,9C19.8,8 18.8008,7 17.8008,7L11,7L11,6L14,6L14,3L6,3zM7,4L13,4L13,5L7,5L7,4zM6,9L8,9L8,10L6,10L6,9zM9,9L11,9L11,10L9,10L9,9zM13,9L18,9L18,11L13,11L13,9zM6,11L8,11L8,12L6,12L6,11zM9,11L11,11L11,12L9,12L9,11zM6,13L8,13L8,14L6,14L6,13zM9,13L11,13L11,14L9,14L9,13zM2,17L2,21L22,21L22,17L2,17zM4.7422,17.291L7.2695,17.291L7.2695,17.7793L6.3574,17.7793L6.3574,20.6777L5.6543,20.6777L5.6543,17.7793L4.7422,17.7793L4.7422,17.291zM11.0078,17.291L12.3613,17.291L12.3613,20.1895L13.0098,20.1895L13.0098,20.6777L10.9238,20.6777L10.9238,20.1895L11.6563,20.1895L11.6563,17.7793L11.0078,17.7793L11.0078,17.291zM8.9688,18.1992C9.092,18.1992 9.2128,18.2081 9.332,18.2266C9.4513,18.245 9.5646,18.2782 9.6719,18.3242C9.7792,18.3703 9.8736,18.4302 9.9531,18.5039C10.0326,18.5745 10.0892,18.6559 10.125,18.748C10.1608,18.8371 10.1797,18.9274 10.1797,19.0195L10.1797,20.6777L9.4746,20.6777L9.4746,20.3828L9.4395,20.4238C9.348,20.519 9.2329,20.5915 9.0938,20.6406C8.9546,20.6898 8.8092,20.7129 8.6582,20.7129C8.531,20.7129 8.4083,20.6978 8.2891,20.6641C8.1698,20.6303 8.066,20.5756 7.9785,20.502C7.8951,20.4252 7.8366,20.3393 7.8008,20.2441C7.765,20.149 7.7461,20.0514 7.7461,19.9531C7.7461,19.8549 7.7688,19.7592 7.8125,19.6641C7.8602,19.5689 7.932,19.4847 8.0273,19.4141C8.1227,19.3434 8.2284,19.2899 8.3477,19.25C8.4669,19.2101 8.5916,19.1814 8.7188,19.166C8.8459,19.1476 8.9743,19.1387 9.1055,19.1387L9.4746,19.1387L9.4746,19.0195C9.4746,18.9551 9.452,18.8951 9.4043,18.8398C9.3606,18.7846 9.2964,18.7461 9.2129,18.7246C9.1334,18.7 9.0522,18.6875 8.9688,18.6875C8.8932,18.6875 8.8177,18.6964 8.7422,18.7148C8.6667,18.7333 8.6024,18.7673 8.5508,18.8164C8.4991,18.8625 8.4651,18.9143 8.4492,18.9727L7.7813,18.834C7.813,18.702 7.8905,18.5849 8.0137,18.4805C8.1369,18.3761 8.2823,18.3036 8.4492,18.2637C8.6201,18.2207 8.7939,18.1992 8.9688,18.1992zM14.9473,18.1992C15.1221,18.1992 15.2921,18.2243 15.4551,18.2734C15.622,18.3226 15.7618,18.3995 15.873,18.5039C15.9883,18.6083 16.0695,18.7246 16.1172,18.8535C16.1649,18.9825 16.1875,19.1149 16.1875,19.25L16.1875,19.7012L14.4121,19.7012C14.416,19.7564 14.4255,19.8119 14.4414,19.8672C14.4613,19.9317 14.4953,19.9924 14.543,20.0508C14.5946,20.106 14.6607,20.149 14.7402,20.1797C14.8197,20.2104 14.9028,20.2266 14.9902,20.2266C15.0737,20.2266 15.1549,20.214 15.2344,20.1895C15.3139,20.1618 15.38,20.1206 15.4316,20.0684C15.4833,20.0131 15.5211,19.9531 15.5449,19.8887L16.1934,20.0781C16.1377,20.2071 16.0509,20.3225 15.9316,20.4238C15.8124,20.5251 15.6689,20.5985 15.502,20.6445C15.335,20.6906 15.1651,20.7129 14.9902,20.7129C14.8154,20.7129 14.6416,20.6906 14.4707,20.6445C14.3038,20.5954 14.1602,20.5212 14.041,20.4199C13.9218,20.3155 13.8368,20.1965 13.7852,20.0645C13.7335,19.9324 13.709,19.7992 13.709,19.6641L13.709,19.25C13.709,19.1149 13.7316,18.9825 13.7793,18.8535C13.827,18.7246 13.9063,18.6083 14.0176,18.5039C14.1328,18.3995 14.2726,18.3226 14.4355,18.2734C14.6025,18.2243 14.7724,18.1992 14.9473,18.1992zM18.502,18.1992C18.6172,18.1992 18.7286,18.2207 18.8359,18.2637C18.9432,18.3036 19.032,18.3599 19.1035,18.4336C19.179,18.5073 19.23,18.5879 19.2578,18.6738L18.6016,18.9121C18.5817,18.8507 18.5383,18.7988 18.4707,18.7559C18.4071,18.7098 18.3335,18.6875 18.25,18.6875C18.1228,18.6875 18.019,18.7304 17.9355,18.8164C17.8561,18.9024 17.8031,18.9935 17.7793,19.0918C17.7594,19.1808 17.75,19.2703 17.75,19.3594L17.75,20.6777L17.0469,20.6777L17.0469,18.2363L17.75,18.2363L17.75,18.6602C17.7778,18.6049 17.8118,18.5502 17.8516,18.498C17.9191,18.409 18.0097,18.3365 18.125,18.2813C18.2442,18.226 18.3708,18.1992 18.502,18.1992zM14.9473,18.6875C14.8638,18.6875 14.7826,18.7045 14.7031,18.7383C14.6276,18.769 14.5691,18.8128 14.5254,18.8711C14.4817,18.9294 14.4514,18.9922 14.4355,19.0566C14.4236,19.1088 14.4161,19.1607 14.4121,19.2129L15.4844,19.2129C15.4804,19.1607 15.4729,19.1088 15.4609,19.0566C15.445,18.9922 15.4148,18.9294 15.3711,18.8711C15.3274,18.8128 15.265,18.769 15.1855,18.7383C15.11,18.7045 15.0307,18.6875 14.9473,18.6875zM9.1055,19.627C9.0101,19.627 8.9157,19.6359 8.8203,19.6543C8.7249,19.6696 8.638,19.7045 8.5625,19.7598C8.487,19.812 8.4492,19.8764 8.4492,19.9531C8.4492,20.0084 8.4719,20.0594 8.5156,20.1055C8.5593,20.1515 8.616,20.1847 8.6875,20.2031C8.759,20.2185 8.8308,20.2266 8.9023,20.2266C9.0057,20.2266 9.1058,20.2068 9.2012,20.1699C9.2966,20.13 9.3664,20.0737 9.4102,20C9.4539,19.9263 9.4746,19.8502 9.4746,19.7734L9.4746,19.627L9.1055,19.627z" - android:fillColor="#f9f9f9" - tools:ignore="VectorPath" /> - </group> + <group + android:translateX="12" + android:translateY="12"> + <path + android:fillColor="#f9f9f9" + android:pathData="M6,3L6,6L9,6L9,7L6.25,7C5.05,7 4.0508,8 4.0508,9L3.5,16L20.5,16L20,9C19.8,8 18.8008,7 17.8008,7L11,7L11,6L14,6L14,3L6,3zM7,4L13,4L13,5L7,5L7,4zM6,9L8,9L8,10L6,10L6,9zM9,9L11,9L11,10L9,10L9,9zM13,9L18,9L18,11L13,11L13,9zM6,11L8,11L8,12L6,12L6,11zM9,11L11,11L11,12L9,12L9,11zM6,13L8,13L8,14L6,14L6,13zM9,13L11,13L11,14L9,14L9,13zM2,17L2,21L22,21L22,17L2,17zM4.7422,17.291L7.2695,17.291L7.2695,17.7793L6.3574,17.7793L6.3574,20.6777L5.6543,20.6777L5.6543,17.7793L4.7422,17.7793L4.7422,17.291zM11.0078,17.291L12.3613,17.291L12.3613,20.1895L13.0098,20.1895L13.0098,20.6777L10.9238,20.6777L10.9238,20.1895L11.6563,20.1895L11.6563,17.7793L11.0078,17.7793L11.0078,17.291zM8.9688,18.1992C9.092,18.1992 9.2128,18.2081 9.332,18.2266C9.4513,18.245 9.5646,18.2782 9.6719,18.3242C9.7792,18.3703 9.8736,18.4302 9.9531,18.5039C10.0326,18.5745 10.0892,18.6559 10.125,18.748C10.1608,18.8371 10.1797,18.9274 10.1797,19.0195L10.1797,20.6777L9.4746,20.6777L9.4746,20.3828L9.4395,20.4238C9.348,20.519 9.2329,20.5915 9.0938,20.6406C8.9546,20.6898 8.8092,20.7129 8.6582,20.7129C8.531,20.7129 8.4083,20.6978 8.2891,20.6641C8.1698,20.6303 8.066,20.5756 7.9785,20.502C7.8951,20.4252 7.8366,20.3393 7.8008,20.2441C7.765,20.149 7.7461,20.0514 7.7461,19.9531C7.7461,19.8549 7.7688,19.7592 7.8125,19.6641C7.8602,19.5689 7.932,19.4847 8.0273,19.4141C8.1227,19.3434 8.2284,19.2899 8.3477,19.25C8.4669,19.2101 8.5916,19.1814 8.7188,19.166C8.8459,19.1476 8.9743,19.1387 9.1055,19.1387L9.4746,19.1387L9.4746,19.0195C9.4746,18.9551 9.452,18.8951 9.4043,18.8398C9.3606,18.7846 9.2964,18.7461 9.2129,18.7246C9.1334,18.7 9.0522,18.6875 8.9688,18.6875C8.8932,18.6875 8.8177,18.6964 8.7422,18.7148C8.6667,18.7333 8.6024,18.7673 8.5508,18.8164C8.4991,18.8625 8.4651,18.9143 8.4492,18.9727L7.7813,18.834C7.813,18.702 7.8905,18.5849 8.0137,18.4805C8.1369,18.3761 8.2823,18.3036 8.4492,18.2637C8.6201,18.2207 8.7939,18.1992 8.9688,18.1992zM14.9473,18.1992C15.1221,18.1992 15.2921,18.2243 15.4551,18.2734C15.622,18.3226 15.7618,18.3995 15.873,18.5039C15.9883,18.6083 16.0695,18.7246 16.1172,18.8535C16.1649,18.9825 16.1875,19.1149 16.1875,19.25L16.1875,19.7012L14.4121,19.7012C14.416,19.7564 14.4255,19.8119 14.4414,19.8672C14.4613,19.9317 14.4953,19.9924 14.543,20.0508C14.5946,20.106 14.6607,20.149 14.7402,20.1797C14.8197,20.2104 14.9028,20.2266 14.9902,20.2266C15.0737,20.2266 15.1549,20.214 15.2344,20.1895C15.3139,20.1618 15.38,20.1206 15.4316,20.0684C15.4833,20.0131 15.5211,19.9531 15.5449,19.8887L16.1934,20.0781C16.1377,20.2071 16.0509,20.3225 15.9316,20.4238C15.8124,20.5251 15.6689,20.5985 15.502,20.6445C15.335,20.6906 15.1651,20.7129 14.9902,20.7129C14.8154,20.7129 14.6416,20.6906 14.4707,20.6445C14.3038,20.5954 14.1602,20.5212 14.041,20.4199C13.9218,20.3155 13.8368,20.1965 13.7852,20.0645C13.7335,19.9324 13.709,19.7992 13.709,19.6641L13.709,19.25C13.709,19.1149 13.7316,18.9825 13.7793,18.8535C13.827,18.7246 13.9063,18.6083 14.0176,18.5039C14.1328,18.3995 14.2726,18.3226 14.4355,18.2734C14.6025,18.2243 14.7724,18.1992 14.9473,18.1992zM18.502,18.1992C18.6172,18.1992 18.7286,18.2207 18.8359,18.2637C18.9432,18.3036 19.032,18.3599 19.1035,18.4336C19.179,18.5073 19.23,18.5879 19.2578,18.6738L18.6016,18.9121C18.5817,18.8507 18.5383,18.7988 18.4707,18.7559C18.4071,18.7098 18.3335,18.6875 18.25,18.6875C18.1228,18.6875 18.019,18.7304 17.9355,18.8164C17.8561,18.9024 17.8031,18.9935 17.7793,19.0918C17.7594,19.1808 17.75,19.2703 17.75,19.3594L17.75,20.6777L17.0469,20.6777L17.0469,18.2363L17.75,18.2363L17.75,18.6602C17.7778,18.6049 17.8118,18.5502 17.8516,18.498C17.9191,18.409 18.0097,18.3365 18.125,18.2813C18.2442,18.226 18.3708,18.1992 18.502,18.1992zM14.9473,18.6875C14.8638,18.6875 14.7826,18.7045 14.7031,18.7383C14.6276,18.769 14.5691,18.8128 14.5254,18.8711C14.4817,18.9294 14.4514,18.9922 14.4355,19.0566C14.4236,19.1088 14.4161,19.1607 14.4121,19.2129L15.4844,19.2129C15.4804,19.1607 15.4729,19.1088 15.4609,19.0566C15.445,18.9922 15.4148,18.9294 15.3711,18.8711C15.3274,18.8128 15.265,18.769 15.1855,18.7383C15.11,18.7045 15.0307,18.6875 14.9473,18.6875zM9.1055,19.627C9.0101,19.627 8.9157,19.6359 8.8203,19.6543C8.7249,19.6696 8.638,19.7045 8.5625,19.7598C8.487,19.812 8.4492,19.8764 8.4492,19.9531C8.4492,20.0084 8.4719,20.0594 8.5156,20.1055C8.5593,20.1515 8.616,20.1847 8.6875,20.2031C8.759,20.2185 8.8308,20.2266 8.9023,20.2266C9.0057,20.2266 9.1058,20.2068 9.2012,20.1699C9.2966,20.13 9.3664,20.0737 9.4102,20C9.4539,19.9263 9.4746,19.8502 9.4746,19.7734L9.4746,19.627L9.1055,19.627z" + tools:ignore="VectorPath" /> + </group> </vector> diff --git a/cashier/src/main/res/layout-w550dp/fragment_transaction.xml b/cashier/src/main/res/layout-w550dp/fragment_transaction.xml index 610ed28..3df5035 100644 --- a/cashier/src/main/res/layout-w550dp/fragment_transaction.xml +++ b/cashier/src/main/res/layout-w550dp/fragment_transaction.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ This file is part of GNU Taler ~ (C) 2020 Taler Systems S.A. ~ diff --git a/cashier/src/main/res/layout/activity_main.xml b/cashier/src/main/res/layout/activity_main.xml index e41b842..a56b647 100644 --- a/cashier/src/main/res/layout/activity_main.xml +++ b/cashier/src/main/res/layout/activity_main.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ This file is part of GNU Taler ~ (C) 2020 Taler Systems S.A. ~ diff --git a/cashier/src/main/res/layout/fragment_balance.xml b/cashier/src/main/res/layout/fragment_balance.xml index b50cfa9..fcd0e0a 100644 --- a/cashier/src/main/res/layout/fragment_balance.xml +++ b/cashier/src/main/res/layout/fragment_balance.xml @@ -65,9 +65,9 @@ android:id="@+id/balanceView" android:layout_width="0dp" android:layout_height="wrap_content" + android:gravity="center" android:paddingStart="@dimen/default_margin" android:paddingTop="8dp" - android:gravity="center" android:paddingEnd="@dimen/default_margin" android:paddingBottom="@dimen/default_margin" android:textAppearance="@style/TextAppearance.AppCompat.Headline" diff --git a/cashier/src/main/res/layout/fragment_error.xml b/cashier/src/main/res/layout/fragment_error.xml index ac34c85..fe1db37 100644 --- a/cashier/src/main/res/layout/fragment_error.xml +++ b/cashier/src/main/res/layout/fragment_error.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ This file is part of GNU Taler ~ (C) 2020 Taler Systems S.A. ~ diff --git a/cashier/src/main/res/layout/fragment_transaction.xml b/cashier/src/main/res/layout/fragment_transaction.xml index 3affbf2..499b362 100644 --- a/cashier/src/main/res/layout/fragment_transaction.xml +++ b/cashier/src/main/res/layout/fragment_transaction.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ This file is part of GNU Taler ~ (C) 2020 Taler Systems S.A. ~ diff --git a/cashier/src/main/res/menu/balance.xml b/cashier/src/main/res/menu/balance.xml index bc64af3..eac38d6 100644 --- a/cashier/src/main/res/menu/balance.xml +++ b/cashier/src/main/res/menu/balance.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ This file is part of GNU Taler ~ (C) 2020 Taler Systems S.A. ~ diff --git a/cashier/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/cashier/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 7353dbd..ac94b34 100644 --- a/cashier/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/cashier/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> - <background android:drawable="@color/ic_launcher_background"/> - <foreground android:drawable="@drawable/ic_launcher_foreground"/> + <background android:drawable="@color/ic_launcher_background" /> + <foreground android:drawable="@drawable/ic_launcher_foreground" /> </adaptive-icon>
\ No newline at end of file diff --git a/cashier/src/main/res/values-night/colors.xml b/cashier/src/main/res/values-night/colors.xml index 55dde58..c46823c 100644 --- a/cashier/src/main/res/values-night/colors.xml +++ b/cashier/src/main/res/values-night/colors.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ This file is part of GNU Taler ~ (C) 2020 Taler Systems S.A. ~ |