gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-android] branch master updated: Factor out some cashier cod


From: gnunet
Subject: [taler-taler-android] branch master updated: Factor out some cashier code into common library
Date: Wed, 18 Mar 2020 19:55:18 +0100

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository taler-android.

The following commit(s) were added to refs/heads/master by this push:
     new 070fd9b  Factor out some cashier code into common library
070fd9b is described below

commit 070fd9b7d3793082e447d7713d1dda932f237c99
Author: Torsten Grote <address@hidden>
AuthorDate: Wed Mar 18 15:54:36 2020 -0300

    Factor out some cashier code into common library
---
 .idea/gradle.xml                                   |  1 +
 build.gradle                                       |  1 +
 cashier/build.gradle                               | 16 ++-----
 cashier/src/main/AndroidManifest.xml               |  4 --
 .../main/java/net/taler/cashier/BalanceFragment.kt |  3 ++
 .../main/java/net/taler/cashier/MainViewModel.kt   |  3 +-
 .../taler/cashier/withdraw/TransactionFragment.kt  |  5 +-
 .../net/taler/cashier/withdraw/WithdrawManager.kt  |  3 +-
 gradle.properties                                  |  1 +
 settings.gradle                                    |  1 +
 taler-kotlin-common/.gitignore                     |  1 +
 {cashier => taler-kotlin-common}/build.gradle      | 30 +++---------
 taler-kotlin-common/consumer-rules.pro             |  0
 taler-kotlin-common/proguard-rules.pro             | 21 ++++++++
 taler-kotlin-common/src/main/AndroidManifest.xml   | 24 ++++++++++
 .../src/main/java/net/taler/common}/Amount.kt      |  2 +-
 .../src/main/java/net/taler/common/AndroidUtils.kt | 56 ++++------------------
 .../main/java/net/taler/common/ByteArrayUtils.kt   | 42 +---------------
 .../src/main/java/net/taler/common}/NfcManager.kt  |  4 +-
 .../main/java/net/taler/common}/QrCodeManager.kt   |  2 +-
 20 files changed, 86 insertions(+), 134 deletions(-)

diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 65dee6e..603ebc0 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -13,6 +13,7 @@
             <option value="$PROJECT_DIR$/akono" />
             <option value="$PROJECT_DIR$/cashier" />
             <option value="$PROJECT_DIR$/merchant-terminal" />
+            <option value="$PROJECT_DIR$/taler-kotlin-common" />
             <option value="$PROJECT_DIR$/wallet" />
           </set>
         </option>
diff --git a/build.gradle b/build.gradle
index f286dfe..4c2476d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,7 @@
 buildscript {
     ext.kotlin_version = '1.3.70'
     ext.nav_version = "2.2.1"
+    ext.build_tools_version = "29.0.2"
     repositories {
         google()
         jcenter()
diff --git a/cashier/build.gradle b/cashier/build.gradle
index b77dc30..5fe7e16 100644
--- a/cashier/build.gradle
+++ b/cashier/build.gradle
@@ -21,11 +21,12 @@ apply plugin: 'androidx.navigation.safeargs.kotlin'
 
 android {
     compileSdkVersion 29
-    buildToolsVersion "29.0.3"
+    //noinspection GradleDependency
+    buildToolsVersion "$build_tools_version"
 
     defaultConfig {
         applicationId "net.taler.cashier"
-        minSdkVersion 23
+        minSdkVersion 24
         targetSdkVersion 29
         versionCode 1
         versionName "0.1"
@@ -46,9 +47,7 @@ android {
 }
 
 dependencies {
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
-    implementation 'androidx.appcompat:appcompat:1.1.0'
-    implementation 'androidx.core:core-ktx:1.2.0'
+    implementation project(":taler-kotlin-common")
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
     implementation 'androidx.security:security-crypto:1.0.0-beta01'
     implementation 'com.google.android.material:material:1.1.0'
@@ -56,13 +55,6 @@ dependencies {
     implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
     implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
 
-    // ViewModel and LiveData
-    def lifecycle_version = "2.2.0"
-    implementation 
"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
-
-    // QR codes
-    implementation 'com.google.zxing:core:3.4.0'
-
     implementation "com.squareup.okhttp3:okhttp:3.12.6"
 
     testImplementation 'junit:junit:4.13'
diff --git a/cashier/src/main/AndroidManifest.xml 
b/cashier/src/main/AndroidManifest.xml
index 345c9a1..bdc5ec0 100644
--- a/cashier/src/main/AndroidManifest.xml
+++ b/cashier/src/main/AndroidManifest.xml
@@ -3,10 +3,6 @@
     xmlns:tools="http://schemas.android.com/tools";
     package="net.taler.cashier">
 
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.NFC" />
-
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
diff --git a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt 
b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
index b3a0221..2178a78 100644
--- a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
+++ b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt
@@ -34,6 +34,9 @@ import kotlinx.android.synthetic.main.fragment_balance.*
 import 
net.taler.cashier.BalanceFragmentDirections.Companion.actionBalanceFragmentToTransactionFragment
 import net.taler.cashier.withdraw.LastTransaction
 import net.taler.cashier.withdraw.WithdrawStatus
+import net.taler.common.Amount
+import net.taler.common.fadeIn
+import net.taler.common.fadeOut
 
 sealed class BalanceResult {
     object Error : BalanceResult()
diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt 
b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
index 3874038..6cd12ff 100644
--- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
+++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
@@ -32,9 +32,10 @@ import androidx.security.crypto.MasterKeys
 import androidx.security.crypto.MasterKeys.AES256_GCM_SPEC
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
-import net.taler.cashier.Amount.Companion.fromStringSigned
 import net.taler.cashier.HttpHelper.makeJsonGetRequest
 import net.taler.cashier.withdraw.WithdrawManager
+import net.taler.common.Amount.Companion.fromStringSigned
+import net.taler.common.isOnline
 
 private val TAG = MainViewModel::class.java.simpleName
 
diff --git 
a/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt 
b/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt
index 8b782b0..8857bfa 100644
--- a/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt
+++ b/cashier/src/main/java/net/taler/cashier/withdraw/TransactionFragment.kt
@@ -30,13 +30,14 @@ import androidx.navigation.fragment.findNavController
 import kotlinx.android.synthetic.main.fragment_transaction.*
 import net.taler.cashier.MainViewModel
 import net.taler.cashier.R
-import net.taler.cashier.fadeIn
-import net.taler.cashier.fadeOut
 import 
net.taler.cashier.withdraw.TransactionFragmentDirections.Companion.actionTransactionFragmentToBalanceFragment
 import 
net.taler.cashier.withdraw.TransactionFragmentDirections.Companion.actionTransactionFragmentToErrorFragment
 import net.taler.cashier.withdraw.WithdrawResult.Error
 import net.taler.cashier.withdraw.WithdrawResult.InsufficientBalance
 import net.taler.cashier.withdraw.WithdrawResult.Success
+import net.taler.common.NfcManager
+import net.taler.common.fadeIn
+import net.taler.common.fadeOut
 
 class TransactionFragment : Fragment() {
 
diff --git 
a/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt 
b/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
index 4c618ac..bfc82ce 100644
--- a/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
+++ b/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
@@ -34,6 +34,7 @@ import net.taler.cashier.HttpJsonResult.Error
 import net.taler.cashier.HttpJsonResult.Success
 import net.taler.cashier.MainViewModel
 import net.taler.cashier.R
+import net.taler.common.QrCodeManager.makeQrCode
 import org.json.JSONObject
 import java.util.concurrent.TimeUnit.MINUTES
 import java.util.concurrent.TimeUnit.SECONDS
@@ -95,7 +96,7 @@ class WithdrawManager(
                     val withdrawResult = WithdrawResult.Success(
                         id = result.json.getString("withdrawal_id"),
                         talerUri = talerUri,
-                        qrCode = QrCodeManager.makeQrCode(talerUri)
+                        qrCode = makeQrCode(talerUri)
                     )
                     mWithdrawResult.postValue(withdrawResult)
                     timer.start()
diff --git a/gradle.properties b/gradle.properties
index 00f6d64..337c38f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -7,6 +7,7 @@
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
 org.gradle.jvmargs=-Xmx1536m
+org.gradle.configureondemand=true
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # 
http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
diff --git a/settings.gradle b/settings.gradle
index a1882de..f254aa2 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -15,3 +15,4 @@
  */
 
 include ':akono', ':cashier', ':merchant-terminal', ':wallet'
+include ':taler-kotlin-common'
diff --git a/taler-kotlin-common/.gitignore b/taler-kotlin-common/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/taler-kotlin-common/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/cashier/build.gradle b/taler-kotlin-common/build.gradle
similarity index 63%
copy from cashier/build.gradle
copy to taler-kotlin-common/build.gradle
index b77dc30..d7c9362 100644
--- a/cashier/build.gradle
+++ b/taler-kotlin-common/build.gradle
@@ -14,22 +14,23 @@
  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-apply plugin: 'com.android.application'
+apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
 apply plugin: 'kotlin-android-extensions'
-apply plugin: 'androidx.navigation.safeargs.kotlin'
 
 android {
     compileSdkVersion 29
-    buildToolsVersion "29.0.3"
+    //noinspection GradleDependency
+    buildToolsVersion "$build_tools_version"
 
     defaultConfig {
-        applicationId "net.taler.cashier"
-        minSdkVersion 23
+        minSdkVersion 24
         targetSdkVersion 29
         versionCode 1
         versionName "0.1"
+
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+        consumerProguardFiles 'consumer-rules.pro'
     }
 
     buildTypes {
@@ -39,34 +40,17 @@ android {
         }
     }
 
-    kotlinOptions {
-        jvmTarget = "1.8"
-    }
-
 }
 
 dependencies {
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.core:core-ktx:1.2.0'
-    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
-    implementation 'androidx.security:security-crypto:1.0.0-beta01'
-    implementation 'com.google.android.material:material:1.1.0'
-
-    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
-    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
 
     // ViewModel and LiveData
     def lifecycle_version = "2.2.0"
     implementation 
"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
 
     // QR codes
-    implementation 'com.google.zxing:core:3.4.0'
-
-    implementation "com.squareup.okhttp3:okhttp:3.12.6"
-
-    testImplementation 'junit:junit:4.13'
-
-    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+    implementation 'com.google.zxing:core:3.4.0'  // needs minSdkVersion 24+
 }
diff --git a/taler-kotlin-common/consumer-rules.pro 
b/taler-kotlin-common/consumer-rules.pro
new file mode 100644
index 0000000..e69de29
diff --git a/taler-kotlin-common/proguard-rules.pro 
b/taler-kotlin-common/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/taler-kotlin-common/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/taler-kotlin-common/src/main/AndroidManifest.xml 
b/taler-kotlin-common/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..902ddc1
--- /dev/null
+++ b/taler-kotlin-common/src/main/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<!--
+  ~ This file is part of GNU Taler
+  ~ (C) 2020 Taler Systems S.A.
+  ~
+  ~ GNU Taler is free software; you can redistribute it and/or modify it under 
the
+  ~ terms of the GNU General Public License as published by the Free Software
+  ~ Foundation; either version 3, or (at your option) any later version.
+  ~
+  ~ GNU Taler is distributed in the hope that it will be useful, but WITHOUT 
ANY
+  ~ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+  ~ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  ~
+  ~ You should have received a copy of the GNU General Public License along 
with
+  ~ GNU Taler; see the file COPYING.  If not, see 
<http://www.gnu.org/licenses/>
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android";
+    package="net.taler.common">
+
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.NFC" />
+
+</manifest>
diff --git a/cashier/src/main/java/net/taler/cashier/Amount.kt 
b/taler-kotlin-common/src/main/java/net/taler/common/Amount.kt
similarity index 98%
rename from cashier/src/main/java/net/taler/cashier/Amount.kt
rename to taler-kotlin-common/src/main/java/net/taler/common/Amount.kt
index 2c237c8..428ddef 100644
--- a/cashier/src/main/java/net/taler/cashier/Amount.kt
+++ b/taler-kotlin-common/src/main/java/net/taler/common/Amount.kt
@@ -14,7 +14,7 @@
  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-package net.taler.cashier
+package net.taler.common
 
 data class Amount(val currency: String, val amount: String) {
 
diff --git a/cashier/src/main/java/net/taler/cashier/Utils.kt 
b/taler-kotlin-common/src/main/java/net/taler/common/AndroidUtils.kt
similarity index 51%
copy from cashier/src/main/java/net/taler/cashier/Utils.kt
copy to taler-kotlin-common/src/main/java/net/taler/common/AndroidUtils.kt
index 62f7a77..2fafdf2 100644
--- a/cashier/src/main/java/net/taler/cashier/Utils.kt
+++ b/taler-kotlin-common/src/main/java/net/taler/common/AndroidUtils.kt
@@ -14,66 +14,28 @@
  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-package net.taler.cashier
+package net.taler.common
 
 import android.content.Context
 import android.content.Context.CONNECTIVITY_SERVICE
 import android.net.ConnectivityManager
-import android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET
-import android.os.Build.VERSION.SDK_INT
+import android.net.NetworkCapabilities
+import android.os.Build
 import android.view.View
-import android.view.View.INVISIBLE
-import android.view.View.VISIBLE
-
-object Utils {
-
-    private const val HEX_CHARS = "0123456789ABCDEF"
-
-    fun hexStringToByteArray(data: String): ByteArray {
-        val result = ByteArray(data.length / 2)
-
-        for (i in data.indices step 2) {
-            val firstIndex = HEX_CHARS.indexOf(data[i])
-            val secondIndex = HEX_CHARS.indexOf(data[i + 1])
-
-            val octet = firstIndex.shl(4).or(secondIndex)
-            result[i.shr(1)] = octet.toByte()
-        }
-        return result
-    }
-
-
-    private val HEX_CHARS_ARRAY = HEX_CHARS.toCharArray()
-
-    @Suppress("unused")
-    fun toHex(byteArray: ByteArray): String {
-        val result = StringBuffer()
-
-        byteArray.forEach {
-            val octet = it.toInt()
-            val firstIndex = (octet and 0xF0).ushr(4)
-            val secondIndex = octet and 0x0F
-            result.append(HEX_CHARS_ARRAY[firstIndex])
-            result.append(HEX_CHARS_ARRAY[secondIndex])
-        }
-        return result.toString()
-    }
-
-}
 
 fun View.fadeIn(endAction: () -> Unit = {}) {
-    if (visibility == VISIBLE) return
+    if (visibility == View.VISIBLE) return
     alpha = 0f
-    visibility = VISIBLE
+    visibility = View.VISIBLE
     animate().alpha(1f).withEndAction {
         endAction.invoke()
     }.start()
 }
 
 fun View.fadeOut(endAction: () -> Unit = {}) {
-    if (visibility == INVISIBLE) return
+    if (visibility == View.INVISIBLE) return
     animate().alpha(0f).withEndAction {
-        visibility = INVISIBLE
+        visibility = View.INVISIBLE
         alpha = 1f
         endAction.invoke()
     }.start()
@@ -81,11 +43,11 @@ fun View.fadeOut(endAction: () -> Unit = {}) {
 
 fun Context.isOnline(): Boolean {
     val cm = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
-    return if (SDK_INT < 29) {
+    return if (Build.VERSION.SDK_INT < 29) {
         @Suppress("DEPRECATION")
         cm.activeNetworkInfo?.isConnected == true
     } else {
         val capabilities = cm.getNetworkCapabilities(cm.activeNetwork) ?: 
return false
-        capabilities.hasCapability(NET_CAPABILITY_INTERNET)
+        capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
     }
 }
diff --git a/cashier/src/main/java/net/taler/cashier/Utils.kt 
b/taler-kotlin-common/src/main/java/net/taler/common/ByteArrayUtils.kt
similarity index 58%
rename from cashier/src/main/java/net/taler/cashier/Utils.kt
rename to taler-kotlin-common/src/main/java/net/taler/common/ByteArrayUtils.kt
index 62f7a77..fba0d07 100644
--- a/cashier/src/main/java/net/taler/cashier/Utils.kt
+++ b/taler-kotlin-common/src/main/java/net/taler/common/ByteArrayUtils.kt
@@ -14,18 +14,9 @@
  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-package net.taler.cashier
+package net.taler.common
 
-import android.content.Context
-import android.content.Context.CONNECTIVITY_SERVICE
-import android.net.ConnectivityManager
-import android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET
-import android.os.Build.VERSION.SDK_INT
-import android.view.View
-import android.view.View.INVISIBLE
-import android.view.View.VISIBLE
-
-object Utils {
+object ByteArrayUtils {
 
     private const val HEX_CHARS = "0123456789ABCDEF"
 
@@ -60,32 +51,3 @@ object Utils {
     }
 
 }
-
-fun View.fadeIn(endAction: () -> Unit = {}) {
-    if (visibility == VISIBLE) return
-    alpha = 0f
-    visibility = VISIBLE
-    animate().alpha(1f).withEndAction {
-        endAction.invoke()
-    }.start()
-}
-
-fun View.fadeOut(endAction: () -> Unit = {}) {
-    if (visibility == INVISIBLE) return
-    animate().alpha(0f).withEndAction {
-        visibility = INVISIBLE
-        alpha = 1f
-        endAction.invoke()
-    }.start()
-}
-
-fun Context.isOnline(): Boolean {
-    val cm = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
-    return if (SDK_INT < 29) {
-        @Suppress("DEPRECATION")
-        cm.activeNetworkInfo?.isConnected == true
-    } else {
-        val capabilities = cm.getNetworkCapabilities(cm.activeNetwork) ?: 
return false
-        capabilities.hasCapability(NET_CAPABILITY_INTERNET)
-    }
-}
diff --git a/cashier/src/main/java/net/taler/cashier/withdraw/NfcManager.kt 
b/taler-kotlin-common/src/main/java/net/taler/common/NfcManager.kt
similarity index 98%
rename from cashier/src/main/java/net/taler/cashier/withdraw/NfcManager.kt
rename to taler-kotlin-common/src/main/java/net/taler/common/NfcManager.kt
index a487b5f..11e1e1e 100644
--- a/cashier/src/main/java/net/taler/cashier/withdraw/NfcManager.kt
+++ b/taler-kotlin-common/src/main/java/net/taler/common/NfcManager.kt
@@ -14,7 +14,7 @@
  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-package net.taler.cashier.withdraw
+package net.taler.common
 
 import android.app.Activity
 import android.content.Context
@@ -25,7 +25,7 @@ import android.nfc.NfcAdapter.getDefaultAdapter
 import android.nfc.Tag
 import android.nfc.tech.IsoDep
 import android.util.Log
-import net.taler.cashier.Utils.hexStringToByteArray
+import net.taler.common.ByteArrayUtils.hexStringToByteArray
 import org.json.JSONObject
 import java.io.ByteArrayOutputStream
 import java.net.URL
diff --git a/cashier/src/main/java/net/taler/cashier/withdraw/QrCodeManager.kt 
b/taler-kotlin-common/src/main/java/net/taler/common/QrCodeManager.kt
similarity index 97%
rename from cashier/src/main/java/net/taler/cashier/withdraw/QrCodeManager.kt
rename to taler-kotlin-common/src/main/java/net/taler/common/QrCodeManager.kt
index e3ffa92..e2a9a55 100644
--- a/cashier/src/main/java/net/taler/cashier/withdraw/QrCodeManager.kt
+++ b/taler-kotlin-common/src/main/java/net/taler/common/QrCodeManager.kt
@@ -14,7 +14,7 @@
  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-package net.taler.cashier.withdraw
+package net.taler.common
 
 import android.graphics.Bitmap
 import android.graphics.Bitmap.Config.RGB_565

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]