diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index e8ad7e999f..1dde4f60b5 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -9,9 +9,9 @@
-
-
-
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 5facfb67ff..97f6b65d67 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,11 +44,11 @@ android {
}
dependencies {
- implementation project(':tangemcommon')
+ implementation project(':card-common')
// implementation 'com.github.TangemCash.tangemcard-common:tangemcard-android:0.1.0'
- implementation project(':tangemcard-android')
- implementation project(':tangemserver-android')
+ implementation project(':card-android')
+ implementation project(':server-android')
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
diff --git a/app/src/main/java/com/tangem/App.kt b/app/src/main/java/com/tangem/App.kt
index dc02b999b5..d49764e15b 100644
--- a/app/src/main/java/com/tangem/App.kt
+++ b/app/src/main/java/com/tangem/App.kt
@@ -11,7 +11,7 @@ import com.tangem.di.NetworkComponent
import com.tangem.tangemcard.android.data.Firmwares
import com.tangem.tangemcard.android.data.PINStorage
import com.tangem.tangemcommon.data.Issuer
-import com.tangem.tangemserver.android.data.LocalStorage
+import com.tangem.tangemserver.data.LocalStorage
import java.io.InputStreamReader
import java.nio.charset.StandardCharsets
diff --git a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt
index 9a25817c4d..9ad730d18d 100644
--- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt
+++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt
@@ -49,8 +49,8 @@ import com.tangem.tangemcommon.data.TangemCard
import com.tangem.tangemcommon.reader.CardProtocol
import com.tangem.tangemcommon.tasks.VerifyCardTask
import com.tangem.tangemcommon.util.Util
-import com.tangem.tangemserver.android.ServerApiTangem
-import com.tangem.tangemserver.android.model.CardVerifyAndGetInfo
+import com.tangem.tangemserver.ServerApiTangem
+import com.tangem.tangemserver.model.CardVerifyAndGetInfo
import com.tangem.util.LOG
import com.tangem.util.UtilHelper
import com.tangem.wallet.R
diff --git a/tangemcard-android/.gitignore b/card-android/.gitignore
similarity index 100%
rename from tangemcard-android/.gitignore
rename to card-android/.gitignore
diff --git a/tangemcard-android/.idea/caches/build_file_checksums.ser b/card-android/.idea/caches/build_file_checksums.ser
similarity index 100%
rename from tangemcard-android/.idea/caches/build_file_checksums.ser
rename to card-android/.idea/caches/build_file_checksums.ser
diff --git a/tangemcard-android/.idea/codeStyles/Project.xml b/card-android/.idea/codeStyles/Project.xml
similarity index 100%
rename from tangemcard-android/.idea/codeStyles/Project.xml
rename to card-android/.idea/codeStyles/Project.xml
diff --git a/tangemcard-android/.idea/gradle.xml b/card-android/.idea/gradle.xml
similarity index 100%
rename from tangemcard-android/.idea/gradle.xml
rename to card-android/.idea/gradle.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/card-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
rename to card-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml b/card-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
rename to card-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml b/card-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml b/card-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml
rename to card-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml b/card-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml
rename to card-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml b/card-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml b/card-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml b/card-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml b/card-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml b/card-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml
rename to card-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__core_1_56_0_0.xml b/card-android/.idea/libraries/Gradle__core_1_56_0_0.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__core_1_56_0_0.xml
rename to card-android/.idea/libraries/Gradle__core_1_56_0_0.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml b/card-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
rename to card-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml b/card-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml
rename to card-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/card-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
rename to card-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/card-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
rename to card-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml b/card-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml
rename to card-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml b/card-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
rename to card-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml b/card-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml
rename to card-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml b/card-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml
rename to card-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml b/card-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml
rename to card-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/card-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
rename to card-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/card-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
rename to card-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/card-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
rename to card-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml b/card-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
rename to card-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml b/card-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
rename to card-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml b/card-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml
rename to card-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml
diff --git a/tangemcard-android/.idea/libraries/Gradle__prov_1_56_0_0.xml b/card-android/.idea/libraries/Gradle__prov_1_56_0_0.xml
similarity index 100%
rename from tangemcard-android/.idea/libraries/Gradle__prov_1_56_0_0.xml
rename to card-android/.idea/libraries/Gradle__prov_1_56_0_0.xml
diff --git a/tangemcard-android/.idea/misc.xml b/card-android/.idea/misc.xml
similarity index 100%
rename from tangemcard-android/.idea/misc.xml
rename to card-android/.idea/misc.xml
diff --git a/tangemcard-android/.idea/modules.xml b/card-android/.idea/modules.xml
similarity index 100%
rename from tangemcard-android/.idea/modules.xml
rename to card-android/.idea/modules.xml
diff --git a/tangemcard-android/.idea/runConfigurations.xml b/card-android/.idea/runConfigurations.xml
similarity index 100%
rename from tangemcard-android/.idea/runConfigurations.xml
rename to card-android/.idea/runConfigurations.xml
diff --git a/tangemcard-android/.idea/workspace.xml b/card-android/.idea/workspace.xml
similarity index 100%
rename from tangemcard-android/.idea/workspace.xml
rename to card-android/.idea/workspace.xml
diff --git a/tangemcard-android/build.gradle b/card-android/build.gradle
similarity index 96%
rename from tangemcard-android/build.gradle
rename to card-android/build.gradle
index c597fda882..8bf6e510a9 100644
--- a/tangemcard-android/build.gradle
+++ b/card-android/build.gradle
@@ -26,7 +26,7 @@ android {
}
dependencies {
- implementation project(':tangemcommon')
+ implementation project(':card-common')
// implementation 'com.github.TangemCash.tangemcard-common:tangemcard-android:0.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
diff --git a/tangemcard-android/git b/card-android/git
similarity index 100%
rename from tangemcard-android/git
rename to card-android/git
diff --git a/tangemcard-android/gradle/wrapper/gradle-wrapper.jar b/card-android/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from tangemcard-android/gradle/wrapper/gradle-wrapper.jar
rename to card-android/gradle/wrapper/gradle-wrapper.jar
diff --git a/tangemcard-android/gradle/wrapper/gradle-wrapper.properties b/card-android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from tangemcard-android/gradle/wrapper/gradle-wrapper.properties
rename to card-android/gradle/wrapper/gradle-wrapper.properties
diff --git a/tangemcard-android/gradlew b/card-android/gradlew
similarity index 100%
rename from tangemcard-android/gradlew
rename to card-android/gradlew
diff --git a/tangemcard-android/gradlew.bat b/card-android/gradlew.bat
similarity index 100%
rename from tangemcard-android/gradlew.bat
rename to card-android/gradlew.bat
diff --git a/tangemcard-android/local.properties b/card-android/local.properties
similarity index 100%
rename from tangemcard-android/local.properties
rename to card-android/local.properties
diff --git a/tangemcard-android/proguard-rules.pro b/card-android/proguard-rules.pro
similarity index 100%
rename from tangemcard-android/proguard-rules.pro
rename to card-android/proguard-rules.pro
diff --git a/tangemcard-android/src/androidTest/java/com/tangem/tangemcard/android/ExampleInstrumentedTest.java b/card-android/src/androidTest/java/com/tangem/tangemcard/android/ExampleInstrumentedTest.java
similarity index 100%
rename from tangemcard-android/src/androidTest/java/com/tangem/tangemcard/android/ExampleInstrumentedTest.java
rename to card-android/src/androidTest/java/com/tangem/tangemcard/android/ExampleInstrumentedTest.java
diff --git a/tangemcard-android/src/main/AndroidManifest.xml b/card-android/src/main/AndroidManifest.xml
similarity index 100%
rename from tangemcard-android/src/main/AndroidManifest.xml
rename to card-android/src/main/AndroidManifest.xml
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/data/Firmwares.java b/card-android/src/main/java/com/tangem/tangemcard/android/data/Firmwares.java
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/data/Firmwares.java
rename to card-android/src/main/java/com/tangem/tangemcard/android/data/Firmwares.java
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/data/PINStorage.java b/card-android/src/main/java/com/tangem/tangemcard/android/data/PINStorage.java
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/data/PINStorage.java
rename to card-android/src/main/java/com/tangem/tangemcard/android/data/PINStorage.java
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcDeviceAntennaLocation.kt b/card-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcDeviceAntennaLocation.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcDeviceAntennaLocation.kt
rename to card-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcDeviceAntennaLocation.kt
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLifecycleObserver.kt b/card-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLifecycleObserver.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLifecycleObserver.kt
rename to card-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLifecycleObserver.kt
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLocation.kt b/card-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLocation.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLocation.kt
rename to card-android/src/main/java/com/tangem/tangemcard/android/nfc/NfcLocation.kt
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/presentation/dialog/NfcEnableDialog.kt b/card-android/src/main/java/com/tangem/tangemcard/android/presentation/dialog/NfcEnableDialog.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/presentation/dialog/NfcEnableDialog.kt
rename to card-android/src/main/java/com/tangem/tangemcard/android/presentation/dialog/NfcEnableDialog.kt
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/reader/NfcManager.kt b/card-android/src/main/java/com/tangem/tangemcard/android/reader/NfcManager.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/reader/NfcManager.kt
rename to card-android/src/main/java/com/tangem/tangemcard/android/reader/NfcManager.kt
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/android/reader/NfcReader.kt b/card-android/src/main/java/com/tangem/tangemcard/android/reader/NfcReader.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/android/reader/NfcReader.kt
rename to card-android/src/main/java/com/tangem/tangemcard/android/reader/NfcReader.kt
diff --git a/tangemcard-android/src/main/java/com/tangem/tangemcard/data/TangemCardExtensions.kt b/card-android/src/main/java/com/tangem/tangemcard/data/TangemCardExtensions.kt
similarity index 100%
rename from tangemcard-android/src/main/java/com/tangem/tangemcard/data/TangemCardExtensions.kt
rename to card-android/src/main/java/com/tangem/tangemcard/data/TangemCardExtensions.kt
diff --git a/tangemcard-android/src/main/res/drawable/card_default.png b/card-android/src/main/res/drawable/card_default.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/card_default.png
rename to card-android/src/main/res/drawable/card_default.png
diff --git a/tangemcard-android/src/main/res/drawable/hand_card_horizontal.png b/card-android/src/main/res/drawable/hand_card_horizontal.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/hand_card_horizontal.png
rename to card-android/src/main/res/drawable/hand_card_horizontal.png
diff --git a/tangemcard-android/src/main/res/drawable/hand_card_vertical.png b/card-android/src/main/res/drawable/hand_card_vertical.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/hand_card_vertical.png
rename to card-android/src/main/res/drawable/hand_card_vertical.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_action_nfc_gray.png b/card-android/src/main/res/drawable/ic_action_nfc_gray.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_action_nfc_gray.png
rename to card-android/src/main/res/drawable/ic_action_nfc_gray.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_bat_token.png b/card-android/src/main/res/drawable/ic_logo_bat_token.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_bat_token.png
rename to card-android/src/main/res/drawable/ic_logo_bat_token.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_bitcoin.png b/card-android/src/main/res/drawable/ic_logo_bitcoin.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_bitcoin.png
rename to card-android/src/main/res/drawable/ic_logo_bitcoin.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_bitcoin_cash.png b/card-android/src/main/res/drawable/ic_logo_bitcoin_cash.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_bitcoin_cash.png
rename to card-android/src/main/res/drawable/ic_logo_bitcoin_cash.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_bitcoin_testnet.png b/card-android/src/main/res/drawable/ic_logo_bitcoin_testnet.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_bitcoin_testnet.png
rename to card-android/src/main/res/drawable/ic_logo_bitcoin_testnet.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_ethereum.png b/card-android/src/main/res/drawable/ic_logo_ethereum.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_ethereum.png
rename to card-android/src/main/res/drawable/ic_logo_ethereum.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_ethereum_testnet.png b/card-android/src/main/res/drawable/ic_logo_ethereum_testnet.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_ethereum_testnet.png
rename to card-android/src/main/res/drawable/ic_logo_ethereum_testnet.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_seed.png b/card-android/src/main/res/drawable/ic_logo_seed.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_seed.png
rename to card-android/src/main/res/drawable/ic_logo_seed.png
diff --git a/tangemcard-android/src/main/res/drawable/ic_logo_unknown.png b/card-android/src/main/res/drawable/ic_logo_unknown.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/ic_logo_unknown.png
rename to card-android/src/main/res/drawable/ic_logo_unknown.png
diff --git a/tangemcard-android/src/main/res/drawable/tangem2.png b/card-android/src/main/res/drawable/tangem2.png
similarity index 100%
rename from tangemcard-android/src/main/res/drawable/tangem2.png
rename to card-android/src/main/res/drawable/tangem2.png
diff --git a/tangemcard-android/src/main/res/values/strings.xml b/card-android/src/main/res/values/strings.xml
similarity index 100%
rename from tangemcard-android/src/main/res/values/strings.xml
rename to card-android/src/main/res/values/strings.xml
diff --git a/tangemcard-android/src/test/java/com/tangem/tangemcard/android/ExampleUnitTest.java b/card-android/src/test/java/com/tangem/tangemcard/android/ExampleUnitTest.java
similarity index 100%
rename from tangemcard-android/src/test/java/com/tangem/tangemcard/android/ExampleUnitTest.java
rename to card-android/src/test/java/com/tangem/tangemcard/android/ExampleUnitTest.java
diff --git a/tangemcommon/.gitignore b/card-common/.gitignore
similarity index 100%
rename from tangemcommon/.gitignore
rename to card-common/.gitignore
diff --git a/tangemcommon/build.gradle b/card-common/build.gradle
similarity index 100%
rename from tangemcommon/build.gradle
rename to card-common/build.gradle
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/data/Issuer.java b/card-common/src/main/java/com/tangem/tangemcommon/data/Issuer.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/data/Issuer.java
rename to card-common/src/main/java/com/tangem/tangemcommon/data/Issuer.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/data/Manufacturer.java b/card-common/src/main/java/com/tangem/tangemcommon/data/Manufacturer.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/data/Manufacturer.java
rename to card-common/src/main/java/com/tangem/tangemcommon/data/Manufacturer.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/data/TangemCard.java b/card-common/src/main/java/com/tangem/tangemcommon/data/TangemCard.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/data/TangemCard.java
rename to card-common/src/main/java/com/tangem/tangemcommon/data/TangemCard.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/data/external/CardDataSubstitutionProvider.java b/card-common/src/main/java/com/tangem/tangemcommon/data/external/CardDataSubstitutionProvider.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/data/external/CardDataSubstitutionProvider.java
rename to card-common/src/main/java/com/tangem/tangemcommon/data/external/CardDataSubstitutionProvider.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/data/external/FirmwaresDigestsProvider.java b/card-common/src/main/java/com/tangem/tangemcommon/data/external/FirmwaresDigestsProvider.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/data/external/FirmwaresDigestsProvider.java
rename to card-common/src/main/java/com/tangem/tangemcommon/data/external/FirmwaresDigestsProvider.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/data/external/PINsProvider.java b/card-common/src/main/java/com/tangem/tangemcommon/data/external/PINsProvider.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/data/external/PINsProvider.java
rename to card-common/src/main/java/com/tangem/tangemcommon/data/external/PINsProvider.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/CardCrypto.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/CardCrypto.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/CardCrypto.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/CardCrypto.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/CardProtocol.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/CardProtocol.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/CardProtocol.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/CardProtocol.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/CommandApdu.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/CommandApdu.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/CommandApdu.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/CommandApdu.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/INS.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/INS.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/INS.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/INS.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/NfcReader.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/NfcReader.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/NfcReader.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/NfcReader.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/ResponseApdu.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/ResponseApdu.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/ResponseApdu.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/ResponseApdu.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/SW.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/SW.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/SW.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/SW.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/SettingsMask.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/SettingsMask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/SettingsMask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/SettingsMask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/TLV.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/TLV.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/TLV.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/TLV.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/TLVException.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/TLVException.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/TLVException.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/TLVException.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/reader/TLVList.java b/card-common/src/main/java/com/tangem/tangemcommon/reader/TLVList.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/reader/TLVList.java
rename to card-common/src/main/java/com/tangem/tangemcommon/reader/TLVList.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/CreateNewWalletTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/CreateNewWalletTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/CreateNewWalletTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/CreateNewWalletTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/CustomReadCardTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/CustomReadCardTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/CustomReadCardTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/CustomReadCardTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/PurgeTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/PurgeTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/PurgeTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/PurgeTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/ReadCardInfoTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/ReadCardInfoTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/ReadCardInfoTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/ReadCardInfoTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/SignTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/SignTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/SignTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/SignTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/SwapPINTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/SwapPINTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/SwapPINTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/SwapPINTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/VerifyCardTask.java b/card-common/src/main/java/com/tangem/tangemcommon/tasks/VerifyCardTask.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/tasks/VerifyCardTask.java
rename to card-common/src/main/java/com/tangem/tangemcommon/tasks/VerifyCardTask.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/util/Log.java b/card-common/src/main/java/com/tangem/tangemcommon/util/Log.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/util/Log.java
rename to card-common/src/main/java/com/tangem/tangemcommon/util/Log.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/util/PBKDF2.java b/card-common/src/main/java/com/tangem/tangemcommon/util/PBKDF2.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/util/PBKDF2.java
rename to card-common/src/main/java/com/tangem/tangemcommon/util/PBKDF2.java
diff --git a/tangemcommon/src/main/java/com/tangem/tangemcommon/util/Util.java b/card-common/src/main/java/com/tangem/tangemcommon/util/Util.java
similarity index 100%
rename from tangemcommon/src/main/java/com/tangem/tangemcommon/util/Util.java
rename to card-common/src/main/java/com/tangem/tangemcommon/util/Util.java
diff --git a/tangemserver-android/.gitignore b/server-android/.gitignore
similarity index 100%
rename from tangemserver-android/.gitignore
rename to server-android/.gitignore
diff --git a/tangemserver-android/.idea/caches/build_file_checksums.ser b/server-android/.idea/caches/build_file_checksums.ser
similarity index 100%
rename from tangemserver-android/.idea/caches/build_file_checksums.ser
rename to server-android/.idea/caches/build_file_checksums.ser
diff --git a/tangemserver-android/.idea/codeStyles/Project.xml b/server-android/.idea/codeStyles/Project.xml
similarity index 100%
rename from tangemserver-android/.idea/codeStyles/Project.xml
rename to server-android/.idea/codeStyles/Project.xml
diff --git a/tangemserver-android/.idea/gradle.xml b/server-android/.idea/gradle.xml
similarity index 100%
rename from tangemserver-android/.idea/gradle.xml
rename to server-android/.idea/gradle.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml b/server-android/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
rename to server-android/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1.xml b/server-android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1.xml
rename to server-android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml b/server-android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
rename to server-android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1.xml b/server-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1.xml
rename to server-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml b/server-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml
rename to server-android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1.xml b/server-android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1.xml
rename to server-android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml b/server-android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml
rename to server-android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml b/server-android/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3.xml b/server-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml b/server-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_customview_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_customview_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_customview_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_customview_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_design_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_design_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_design_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_design_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_loader_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_loader_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_loader_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_loader_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_print_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_print_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_print_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_print_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2.xml b/server-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml b/server-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2.xml b/server-android/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2.xml b/server-android/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_transition_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_transition_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_transition_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_transition_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0.xml b/server-android/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0.xml
rename to server-android/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/server-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
rename to server-android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml b/server-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
rename to server-android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml b/server-android/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml
rename to server-android/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml b/server-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_google_guava_guava_18_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml b/server-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml
rename to server-android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml b/server-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml
rename to server-android/.idea/libraries/Gradle__com_google_zxing_core_3_3_3_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml b/server-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_jakewharton_retrofit_retrofit2_rxjava2_adapter_1_0_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml b/server-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_lambdaworks_scrypt_1_4_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml b/server-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_madgag_spongycastle_core_1_56_0_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml b/server-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_madgag_spongycastle_prov_1_56_0_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_scottyab_rootbeer_lib_0_0_7.xml b/server-android/.idea/libraries/Gradle__com_scottyab_rootbeer_lib_0_0_7.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_scottyab_rootbeer_lib_0_0_7.xml
rename to server-android/.idea/libraries/Gradle__com_scottyab_rootbeer_lib_0_0_7.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_skyfishjy_ripplebackground_library_1_0_1.xml b/server-android/.idea/libraries/Gradle__com_skyfishjy_ripplebackground_library_1_0_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_skyfishjy_ripplebackground_library_1_0_1.xml
rename to server-android/.idea/libraries/Gradle__com_skyfishjy_ripplebackground_library_1_0_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_10_0_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_10_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_10_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_10_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_2_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_5_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml b/server-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml
rename to server-android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_5_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__core_1_56_0_0.xml b/server-android/.idea/libraries/Gradle__core_1_56_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__core_1_56_0_0.xml
rename to server-android/.idea/libraries/Gradle__core_1_56_0_0.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__info_hoang8f_android_segmented_1_0_6.xml b/server-android/.idea/libraries/Gradle__info_hoang8f_android_segmented_1_0_6.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__info_hoang8f_android_segmented_1_0_6.xml
rename to server-android/.idea/libraries/Gradle__info_hoang8f_android_segmented_1_0_6.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_1.xml b/server-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_1.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_1.xml
rename to server-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_1.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml b/server-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
rename to server-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml b/server-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml
rename to server-android/.idea/libraries/Gradle__io_reactivex_rxjava2_rxkotlin_2_3_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/server-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
rename to server-android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/server-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
rename to server-android/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__me_dm7_barcodescanner_core_1_9_8.xml b/server-android/.idea/libraries/Gradle__me_dm7_barcodescanner_core_1_9_8.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__me_dm7_barcodescanner_core_1_9_8.xml
rename to server-android/.idea/libraries/Gradle__me_dm7_barcodescanner_core_1_9_8.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__me_dm7_barcodescanner_zxing_1_9_8.xml b/server-android/.idea/libraries/Gradle__me_dm7_barcodescanner_zxing_1_9_8.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__me_dm7_barcodescanner_zxing_1_9_8.xml
rename to server-android/.idea/libraries/Gradle__me_dm7_barcodescanner_zxing_1_9_8.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml b/server-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml
rename to server-android/.idea/libraries/Gradle__net_jcip_jcip_annotations_1_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml b/server-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
rename to server-android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml b/server-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml
rename to server-android/.idea/libraries/Gradle__org_bitcoinj_bitcoinj_core_0_14_7_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml b/server-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml
rename to server-android/.idea/libraries/Gradle__org_bitcoinj_orchid_1_2_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml b/server-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml
rename to server-android/.idea/libraries/Gradle__org_greenrobot_eventbus_3_1_1_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/server-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
rename to server-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/server-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
rename to server-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/server-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
rename to server-android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml b/server-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
rename to server-android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_11_jar.xml b/server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_11_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_11_jar.xml
rename to server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_11_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_11_jar.xml b/server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_11_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_11_jar.xml
rename to server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_11_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_11_jar.xml b/server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_11_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_11_jar.xml
rename to server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_11_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_11_jar.xml b/server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_11_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_11_jar.xml
rename to server-android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_11_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml b/server-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
rename to server-android/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml b/server-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml
rename to server-android/.idea/libraries/Gradle__org_slf4j_slf4j_api_1_7_20_jar.xml
diff --git a/tangemserver-android/.idea/libraries/Gradle__prov_1_56_0_0.xml b/server-android/.idea/libraries/Gradle__prov_1_56_0_0.xml
similarity index 100%
rename from tangemserver-android/.idea/libraries/Gradle__prov_1_56_0_0.xml
rename to server-android/.idea/libraries/Gradle__prov_1_56_0_0.xml
diff --git a/tangemserver-android/.idea/misc.xml b/server-android/.idea/misc.xml
similarity index 100%
rename from tangemserver-android/.idea/misc.xml
rename to server-android/.idea/misc.xml
diff --git a/tangemserver-android/.idea/modules.xml b/server-android/.idea/modules.xml
similarity index 100%
rename from tangemserver-android/.idea/modules.xml
rename to server-android/.idea/modules.xml
diff --git a/tangemserver-android/.idea/runConfigurations.xml b/server-android/.idea/runConfigurations.xml
similarity index 100%
rename from tangemserver-android/.idea/runConfigurations.xml
rename to server-android/.idea/runConfigurations.xml
diff --git a/tangemserver-android/.idea/workspace.xml b/server-android/.idea/workspace.xml
similarity index 100%
rename from tangemserver-android/.idea/workspace.xml
rename to server-android/.idea/workspace.xml
diff --git a/tangemserver-android/build.gradle b/server-android/build.gradle
similarity index 96%
rename from tangemserver-android/build.gradle
rename to server-android/build.gradle
index e5457ee081..9f963b99c5 100644
--- a/tangemserver-android/build.gradle
+++ b/server-android/build.gradle
@@ -26,7 +26,7 @@ android {
}
dependencies {
- implementation project(':tangemcommon')
+ implementation project(':card-common')
// implementation 'com.github.TangemCash.tangemcard-common:tangemcard-android:0.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
diff --git a/tangemserver-android/gradle/wrapper/gradle-wrapper.jar b/server-android/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from tangemserver-android/gradle/wrapper/gradle-wrapper.jar
rename to server-android/gradle/wrapper/gradle-wrapper.jar
diff --git a/tangemserver-android/gradle/wrapper/gradle-wrapper.properties b/server-android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from tangemserver-android/gradle/wrapper/gradle-wrapper.properties
rename to server-android/gradle/wrapper/gradle-wrapper.properties
diff --git a/tangemserver-android/gradlew b/server-android/gradlew
similarity index 100%
rename from tangemserver-android/gradlew
rename to server-android/gradlew
diff --git a/tangemserver-android/gradlew.bat b/server-android/gradlew.bat
similarity index 100%
rename from tangemserver-android/gradlew.bat
rename to server-android/gradlew.bat
diff --git a/tangemserver-android/local.properties b/server-android/local.properties
similarity index 100%
rename from tangemserver-android/local.properties
rename to server-android/local.properties
diff --git a/tangemserver-android/proguard-rules.pro b/server-android/proguard-rules.pro
similarity index 100%
rename from tangemserver-android/proguard-rules.pro
rename to server-android/proguard-rules.pro
diff --git a/tangemserver-android/src/androidTest/java/com/tangem/tangemserver/ExampleInstrumentedTest.java b/server-android/src/androidTest/java/com/tangem/tangemserver/ExampleInstrumentedTest.java
similarity index 100%
rename from tangemserver-android/src/androidTest/java/com/tangem/tangemserver/ExampleInstrumentedTest.java
rename to server-android/src/androidTest/java/com/tangem/tangemserver/ExampleInstrumentedTest.java
diff --git a/tangemserver-android/src/main/AndroidManifest.xml b/server-android/src/main/AndroidManifest.xml
similarity index 100%
rename from tangemserver-android/src/main/AndroidManifest.xml
rename to server-android/src/main/AndroidManifest.xml
diff --git a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/Server.java b/server-android/src/main/java/com/tangem/tangemserver/Server.java
similarity index 92%
rename from tangemserver-android/src/main/java/com/tangem/tangemserver/android/Server.java
rename to server-android/src/main/java/com/tangem/tangemserver/Server.java
index a6b5a678a8..0a74c2da6a 100644
--- a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/Server.java
+++ b/server-android/src/main/java/com/tangem/tangemserver/Server.java
@@ -1,4 +1,4 @@
-package com.tangem.tangemserver.android;
+package com.tangem.tangemserver;
public class Server {
/**
diff --git a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/ServerApiTangem.java b/server-android/src/main/java/com/tangem/tangemserver/ServerApiTangem.java
similarity index 97%
rename from tangemserver-android/src/main/java/com/tangem/tangemserver/android/ServerApiTangem.java
rename to server-android/src/main/java/com/tangem/tangemserver/ServerApiTangem.java
index 888a2cf963..c430203a5b 100644
--- a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/ServerApiTangem.java
+++ b/server-android/src/main/java/com/tangem/tangemserver/ServerApiTangem.java
@@ -1,10 +1,10 @@
-package com.tangem.tangemserver.android;
+package com.tangem.tangemserver;
import androidx.annotation.NonNull;
import android.util.Log;
import com.tangem.tangemcommon.data.TangemCard;
-import com.tangem.tangemserver.android.model.CardVerifyAndGetInfo;
+import com.tangem.tangemserver.model.CardVerifyAndGetInfo;
import com.tangem.tangemcommon.util.Util;
import java.io.InputStream;
diff --git a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/ServerURL.java b/server-android/src/main/java/com/tangem/tangemserver/ServerURL.java
similarity index 67%
rename from tangemserver-android/src/main/java/com/tangem/tangemserver/android/ServerURL.java
rename to server-android/src/main/java/com/tangem/tangemserver/ServerURL.java
index 80be96c06e..3c2952f9a8 100644
--- a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/ServerURL.java
+++ b/server-android/src/main/java/com/tangem/tangemserver/ServerURL.java
@@ -1,4 +1,4 @@
-package com.tangem.tangemserver.android;
+package com.tangem.tangemserver;
class ServerURL {
static final String API_TANGEM = "https://verify.tangem.com/";
diff --git a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/TangemApi.java b/server-android/src/main/java/com/tangem/tangemserver/TangemApi.java
similarity index 85%
rename from tangemserver-android/src/main/java/com/tangem/tangemserver/android/TangemApi.java
rename to server-android/src/main/java/com/tangem/tangemserver/TangemApi.java
index 96897eab67..e16469787e 100644
--- a/tangemserver-android/src/main/java/com/tangem/tangemserver/android/TangemApi.java
+++ b/server-android/src/main/java/com/tangem/tangemserver/TangemApi.java
@@ -1,6 +1,6 @@
-package com.tangem.tangemserver.android;
+package com.tangem.tangemserver;
-import com.tangem.tangemserver.android.model.CardVerifyAndGetInfo;
+import com.tangem.tangemserver.model.CardVerifyAndGetInfo;
import okhttp3.ResponseBody;
import retrofit2.Call;
diff --git a/server-android/src/main/java/com/tangem/tangemserver/data/LocalStorage.kt b/server-android/src/main/java/com/tangem/tangemserver/data/LocalStorage.kt
new file mode 100644
index 0000000000..132c3e2763
--- /dev/null
+++ b/server-android/src/main/java/com/tangem/tangemserver/data/LocalStorage.kt
@@ -0,0 +1,317 @@
+package com.tangem.tangemserver.data
+
+import android.content.Context
+import com.tangem.tangemcommon.data.TangemCard
+
+import android.annotation.SuppressLint
+import android.graphics.Bitmap
+import java.io.File
+import kotlin.collections.HashMap
+import android.graphics.BitmapFactory
+import android.util.Log
+import com.google.gson.Gson
+import com.google.gson.annotations.SerializedName
+import com.google.gson.reflect.TypeToken
+import com.tangem.tangemserver.model.CardVerifyAndGetInfo
+import com.tangem.tangemserver.R
+import com.tangem.tangemcommon.data.external.CardDataSubstitutionProvider
+import com.tangem.tangemcommon.reader.CardCrypto
+import com.tangem.tangemcommon.util.Util
+import java.io.InputStream
+import java.lang.Exception
+import java.nio.charset.StandardCharsets
+import java.util.*
+
+class LocalStorage
+(
+ val context: Context
+) : CardDataSubstitutionProvider {
+ private lateinit var artworks: HashMap
+ private lateinit var batches: HashMap
+ private val artworksFile: File = File(context.filesDir, "artworks.json")
+ private val batchesFile: File = File(context.filesDir, "batches.json")
+
+ private var cacheDir: File? = null
+
+ init {
+ cacheDir = File(context.filesDir, "artworks")
+ if (!cacheDir!!.exists())
+ cacheDir!!.mkdirs()
+
+ if (artworksFile.exists()) {
+ try {
+ artworksFile.bufferedReader().use { artworks = Gson().fromJson(it, object : TypeToken>() {}.type) }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ artworks = HashMap()
+ }
+ } else {
+ artworks = HashMap()
+ }
+
+ if (artworks.count() < 21) {
+// forceSave=true only on the last one
+ putResourceArtworkToCatalog(R.drawable.card_default, false)
+ putResourceArtworkToCatalog(R.drawable.card_default_nft, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru006, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru007, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru011, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru012, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru013, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru014, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru015, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru016, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru020, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru021, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru022, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru023, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru024, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru028, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru029, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru030, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru031, false)
+ putResourceArtworkToCatalog(R.drawable.card_ru032, false)
+ putResourceArtworkToCatalog(R.drawable.card_ff32, true)
+ }
+ if (batchesFile.exists()) {
+ try {
+ batchesFile.bufferedReader().use { batches = Gson().fromJson(it, object : TypeToken>() {}.type) }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ batches = HashMap()
+ }
+ } else {
+ batches = HashMap()
+ }
+ }
+
+ private fun getArtworkFile(artworkId: String): File {
+ return File(cacheDir, "$artworkId.png")
+ }
+
+ private fun loadArtworkBitmapFromFile(artworkId: String): Bitmap? {
+ return try {
+ BitmapFactory.decodeFile(getArtworkFile(artworkId).absolutePath)
+ } catch (E: Exception) {
+ E.printStackTrace()
+ null
+ }
+ }
+
+ private fun saveArtworkBitmapToFile(artworkId: String, data: ByteArray) {
+ val file = getArtworkFile(artworkId)
+ file.writeBytes(data)
+ }
+
+ fun checkNeedUpdateArtwork(artwork: CardVerifyAndGetInfo.Response.Item.ArtworkInfo?): Boolean {
+ if (artwork == null || artwork.id.isBlank()) return false
+ val localArtwork = artworks[artwork.id] ?: return true
+
+ if (localArtwork.hash == artwork.hash) return false
+
+
+ return localArtwork.updateDate == null || localArtwork.updateDate.before(artwork.getUpdateDate())
+ }
+
+ fun checkBatchInfoChanged(card: TangemCard, result: CardVerifyAndGetInfo.Response.Item): Boolean {
+ var sData: String? = result.substitution?.data
+ var sSignature: String? = result.substitution?.signature
+ if (card.batch != result.batch) {
+ Log.e("CardDataSubstitution", "Invalid batch received!")
+ return false
+ }
+ if (!BatchInfo.CardDataSubstitution.verifySignature(card, sData, sSignature)) {
+ sData = null
+ sSignature = null
+ }
+ val batchInfo = batches[result.batch]
+ if (batchInfo == null || batchInfo.artworkId?.toLowerCase() != result.artwork?.id?.toLowerCase() || batchInfo.dataSubstitution != sData) {
+ putBatchToCatalog(result.batch, result.artwork?.id?.toLowerCase(), sData, sSignature)
+ return true
+ }
+ return false
+ }
+
+ fun updateArtwork(artworkId: String, inputStream: InputStream, updateDate: Date) {
+ val data = inputStream.readBytes()
+ saveArtworkBitmapToFile(artworkId.toLowerCase(), data)
+ putArtworkToCatalog(artworkId, false, data, updateDate, true)
+ }
+
+// private fun putBatchToCatalog(batch: String, resourceId: Int, forceSave: Boolean = true) {
+// putBatchToCatalog(batch, context.resources.getResourceEntryName(resourceId), null, null, forceSave)
+// }
+
+ private fun putBatchToCatalog(batch: String, artworkId: String?, substitution: String?, substitutionSignature: String?, forceSave: Boolean = true) {
+ batches[batch] = BatchInfo(artworkId, substitution, substitutionSignature)
+ if (forceSave) {
+ val sBatches = Gson().toJson(batches)
+ batchesFile.bufferedWriter().use { it.write(sBatches) }
+ }
+ }
+
+ @SuppressLint("ResourceType")
+ private fun putResourceArtworkToCatalog(resourceId: Int, forceSave: Boolean) {
+ context.resources.openRawResource(R.drawable.card_default).use { putArtworkToCatalog(context.resources.getResourceEntryName(resourceId), true, it.readBytes(), null, forceSave) }
+ }
+
+ private fun putArtworkToCatalog(artworkId: String, isResource: Boolean, data: ByteArray, updateDate: Date?, forceSave: Boolean = true) {
+ val artworkInfo = ArtworkInfo(
+ isResource, Util.bytesToHex(Util.calculateSHA256(data)), updateDate
+ )
+ artworks[artworkId.toLowerCase()] = artworkInfo
+ if (forceSave) {
+ val sArtworks = Gson().toJson(artworks)
+ artworksFile.bufferedWriter().use { it.write(sArtworks) }
+ }
+ }
+
+ private fun getArtworkBitmap(artworkId: String): Bitmap? {
+ if (artworkId.isBlank()) return null
+ val info = artworks[artworkId.toLowerCase()] ?: return null
+ return if (info.isResource) {
+ val resID = context.resources.getIdentifier(artworkId, "drawable", context.packageName)
+ if (resID == 0) return null
+ BitmapFactory.decodeResource(context.resources, resID)
+ } else {
+ loadArtworkBitmapFromFile(artworkId)
+ }
+ }
+
+ private fun getDefaultArtworkBitmap(card: TangemCard): Bitmap {
+ val defaultArtworkId: String
+ if (card.tokenSymbol.startsWith("NFT:")) {
+ defaultArtworkId = context.resources.getResourceEntryName(R.drawable.card_default_nft)
+ } else {
+ defaultArtworkId = context.resources.getResourceEntryName(R.drawable.card_default)
+ }
+ val info = artworks[defaultArtworkId]
+ var bitmap: Bitmap? = null
+ if (info != null && !info.isResource) {
+ bitmap = loadArtworkBitmapFromFile(defaultArtworkId)
+ }
+ if (bitmap == null) {
+ if (card.tokenSymbol.startsWith("NFT:")) {
+ return BitmapFactory.decodeResource(context.resources, R.drawable.card_default_nft)
+ } else {
+ return BitmapFactory.decodeResource(context.resources, R.drawable.card_default)
+ }
+ }
+ return bitmap
+ }
+
+ fun getCardArtworkBitmap(card: TangemCard): Bitmap {
+ // special cases (first series of cards, hardcode CID->artwork), on new series batch<->artwork
+ val hexCID = Util.bytesToHex(card.cid)
+ val artworkResourceId: Int? = when {
+ hexCID in "AA01000000000000".."AA01000000004999" -> R.drawable.card_ru006
+ hexCID in "AA01000000005000".."AA01000000009999" -> R.drawable.card_ru007
+
+ hexCID in "AE01000000000000".."AE01000000004999" -> R.drawable.card_ru006
+ hexCID in "AE01000000005000".."AE01000000009999" -> R.drawable.card_ru007
+
+ hexCID in "CB01000000000000".."CB01000000009999" -> R.drawable.card_ru006
+ hexCID in "CB01000000010000".."CB01000000019999" -> R.drawable.card_ru007
+
+ hexCID in "CB01000000020000".."CB01000000039999" -> R.drawable.card_ru006
+ hexCID in "CB01000000040000".."CB01000000059999" -> R.drawable.card_ru007
+
+ hexCID in "CB02000000000000".."CB02000000024999" -> R.drawable.card_ru006
+ hexCID in "CB02000000025000".."CB02000000049999" -> R.drawable.card_ru007
+
+ hexCID in "CB05000010000000".."CB05000010009999" -> R.drawable.card_ru006
+
+ card.batch == "0004" -> R.drawable.card_ru006
+ card.batch == "0006" -> R.drawable.card_ru006
+ card.batch == "0010" -> R.drawable.card_ru006
+ card.batch == "0005" -> R.drawable.card_ru007
+ card.batch == "0007" -> R.drawable.card_ru007
+ card.batch == "0011" -> R.drawable.card_ru007
+ card.batch == "0012" -> R.drawable.card_ru011
+ card.batch == "0013" -> R.drawable.card_ru012
+ card.batch == "0014" -> R.drawable.card_ru006
+ card.batch == "0015" -> R.drawable.card_ru020
+ card.batch == "0016" -> R.drawable.card_ru021
+ card.batch == "0017" -> R.drawable.card_ru013
+ card.batch == "0019" -> R.drawable.card_ru016
+ card.batch == "001A" -> R.drawable.card_ru014
+ card.batch == "001B" -> R.drawable.card_ru015
+ card.batch == "001C" -> R.drawable.card_ru023
+ card.batch == "001D" -> R.drawable.card_ru022
+ card.batch == "001E" -> R.drawable.card_ru024
+ card.batch == "001F" -> R.drawable.card_ru028
+ card.batch == "0018" -> R.drawable.card_ru029
+ card.batch == "0020" -> R.drawable.card_ru030
+ card.batch == "0021" -> R.drawable.card_ru031
+ card.batch == "0022" -> R.drawable.card_ru032
+ card.batch == "FF32" -> R.drawable.card_ff32
+
+ else -> null
+ }
+
+ if (artworkResourceId != null) {
+ val artworkId = context.resources.getResourceEntryName(artworkResourceId)
+ return getArtworkBitmap(artworkId) ?: return getDefaultArtworkBitmap(card)
+ }
+ val batchInfo = batches[card.batch] ?: return getDefaultArtworkBitmap(card)
+ val artworkId = batchInfo.artworkId ?: return getDefaultArtworkBitmap(card)
+ return getArtworkBitmap(artworkId) ?: return getDefaultArtworkBitmap(card)
+ }
+
+ override fun applySubstitution(card: TangemCard) {
+ val batchInfo = batches[card.batch] ?: return
+ val substitution = batchInfo.getDataSubstitution(card) ?: return
+ substitution.applyToCard(card)
+ }
+
+ private data class ArtworkInfo(
+ val isResource: Boolean,
+ val hash: String,
+ val updateDate: Date?
+ )
+
+ private data class BatchInfo(
+ val artworkId: String?,
+ val dataSubstitution: String?,
+ val dataSubstitutionSignature: String?
+ ) {
+
+ fun getDataSubstitution(card: TangemCard): CardDataSubstitution? {
+ return if (CardDataSubstitution.verifySignature(card, dataSubstitution, dataSubstitutionSignature)) {
+ Gson().fromJson(dataSubstitution, CardDataSubstitution::class.java)
+ } else {
+ null
+ }
+ }
+
+ class CardDataSubstitution(
+ @SerializedName("token_symbol")
+ private val tokenSymbol: String?,
+ @SerializedName("token_decimal")
+ private val tokenDecimal: Int?,
+ @SerializedName("token_contract_address")
+ private val contractAddress: String?
+ ) {
+ fun applyToCard(card: TangemCard) {
+ if (tokenSymbol != null && (card.tokenSymbol.isNullOrBlank() || card.tokenSymbol.toLowerCase() == "not defined")) card.tokenSymbol = tokenSymbol
+ if (tokenDecimal != null && card.tokensDecimal == 0) card.tokensDecimal = tokenDecimal
+ if (contractAddress != null && (card.contractAddress.isNullOrBlank() || card.contractAddress.toLowerCase() == "not defined")) card.contractAddress = contractAddress
+ }
+
+ companion object {
+ fun verifySignature(card: TangemCard, substitutionData: String?, substitutionSignature: String?): Boolean {
+ if (substitutionData == null && substitutionSignature == null) return true
+ if (substitutionData == null || substitutionSignature == null) return false
+ val dataToSign = card.batch.toByteArray(StandardCharsets.UTF_8) + substitutionData.toByteArray(StandardCharsets.UTF_8)
+ return try {
+ CardCrypto.VerifySignature(card.issuerPublicDataKey, dataToSign, Util.hexToBytes(substitutionSignature))
+ } catch (E: Exception) {
+ E.printStackTrace()
+ false
+ }
+ }
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/server-android/src/main/java/com/tangem/tangemserver/model/CardVerify.java b/server-android/src/main/java/com/tangem/tangemserver/model/CardVerify.java
new file mode 100644
index 0000000000..15555216f6
--- /dev/null
+++ b/server-android/src/main/java/com/tangem/tangemserver/model/CardVerify.java
@@ -0,0 +1,11 @@
+package com.tangem.tangemserver.model;
+
+public class CardVerify {
+ private String CID;
+ private String publicKey;
+
+ public CardVerify(String CID, String publicKey) {
+ this.CID = CID;
+ this.publicKey = publicKey;
+ }
+}
\ No newline at end of file
diff --git a/server-android/src/main/java/com/tangem/tangemserver/model/CardVerifyAndGetInfo.kt b/server-android/src/main/java/com/tangem/tangemserver/model/CardVerifyAndGetInfo.kt
new file mode 100644
index 0000000000..149b866949
--- /dev/null
+++ b/server-android/src/main/java/com/tangem/tangemserver/model/CardVerifyAndGetInfo.kt
@@ -0,0 +1,55 @@
+package com.tangem.tangemserver.model
+
+import java.text.SimpleDateFormat
+import java.util.*
+
+class CardVerifyAndGetInfo {
+ data class Request(
+ var requests: List- ? = null
+ ) {
+
+ data class Item(
+ var CID: String = "",
+ var publicKey: String = ""
+ )
+
+ }
+
+ data class Response(
+ var results: List
- ? = null
+ ) {
+
+ data class Item(
+ var error: String? = null,
+ var CID: String = "",
+ var passed: Boolean = false,
+ var batch: String = "",
+ var artwork: ArtworkInfo? = null,
+ var substitution: SubstitutionInfo? = null
+ ) {
+
+ data class ArtworkInfo(
+ var id: String = "",
+ var hash: String = "",
+ var date: String = ""
+ ) {
+ fun getUpdateDate(): Date? {
+ return try {
+ SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US).parse(date)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ null
+ }
+ }
+
+ }
+
+ data class SubstitutionInfo(
+ var data: String? = null,
+ var signature: String? = null
+ )
+
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/tangemserver-android/src/main/res/drawable/card_default.png b/server-android/src/main/res/drawable/card_default.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_default.png
rename to server-android/src/main/res/drawable/card_default.png
diff --git a/tangemserver-android/src/main/res/drawable/card_default_nft.png b/server-android/src/main/res/drawable/card_default_nft.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_default_nft.png
rename to server-android/src/main/res/drawable/card_default_nft.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ff32.png b/server-android/src/main/res/drawable/card_ff32.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ff32.png
rename to server-android/src/main/res/drawable/card_ff32.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru006.png b/server-android/src/main/res/drawable/card_ru006.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru006.png
rename to server-android/src/main/res/drawable/card_ru006.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru007.png b/server-android/src/main/res/drawable/card_ru007.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru007.png
rename to server-android/src/main/res/drawable/card_ru007.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru011.png b/server-android/src/main/res/drawable/card_ru011.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru011.png
rename to server-android/src/main/res/drawable/card_ru011.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru012.png b/server-android/src/main/res/drawable/card_ru012.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru012.png
rename to server-android/src/main/res/drawable/card_ru012.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru013.png b/server-android/src/main/res/drawable/card_ru013.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru013.png
rename to server-android/src/main/res/drawable/card_ru013.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru014.png b/server-android/src/main/res/drawable/card_ru014.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru014.png
rename to server-android/src/main/res/drawable/card_ru014.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru015.png b/server-android/src/main/res/drawable/card_ru015.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru015.png
rename to server-android/src/main/res/drawable/card_ru015.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru016.png b/server-android/src/main/res/drawable/card_ru016.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru016.png
rename to server-android/src/main/res/drawable/card_ru016.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru020.png b/server-android/src/main/res/drawable/card_ru020.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru020.png
rename to server-android/src/main/res/drawable/card_ru020.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru021.png b/server-android/src/main/res/drawable/card_ru021.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru021.png
rename to server-android/src/main/res/drawable/card_ru021.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru022.png b/server-android/src/main/res/drawable/card_ru022.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru022.png
rename to server-android/src/main/res/drawable/card_ru022.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru023.png b/server-android/src/main/res/drawable/card_ru023.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru023.png
rename to server-android/src/main/res/drawable/card_ru023.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru024.png b/server-android/src/main/res/drawable/card_ru024.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru024.png
rename to server-android/src/main/res/drawable/card_ru024.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru028.png b/server-android/src/main/res/drawable/card_ru028.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru028.png
rename to server-android/src/main/res/drawable/card_ru028.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru029.png b/server-android/src/main/res/drawable/card_ru029.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru029.png
rename to server-android/src/main/res/drawable/card_ru029.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru030.png b/server-android/src/main/res/drawable/card_ru030.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru030.png
rename to server-android/src/main/res/drawable/card_ru030.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru031.png b/server-android/src/main/res/drawable/card_ru031.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru031.png
rename to server-android/src/main/res/drawable/card_ru031.png
diff --git a/tangemserver-android/src/main/res/drawable/card_ru032.png b/server-android/src/main/res/drawable/card_ru032.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/card_ru032.png
rename to server-android/src/main/res/drawable/card_ru032.png
diff --git a/tangemserver-android/src/main/res/drawable/hand_card_horizontal.png b/server-android/src/main/res/drawable/hand_card_horizontal.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/hand_card_horizontal.png
rename to server-android/src/main/res/drawable/hand_card_horizontal.png
diff --git a/tangemserver-android/src/main/res/drawable/hand_card_vertical.png b/server-android/src/main/res/drawable/hand_card_vertical.png
similarity index 100%
rename from tangemserver-android/src/main/res/drawable/hand_card_vertical.png
rename to server-android/src/main/res/drawable/hand_card_vertical.png
diff --git a/tangemserver-android/src/main/res/values/strings.xml b/server-android/src/main/res/values/strings.xml
similarity index 100%
rename from tangemserver-android/src/main/res/values/strings.xml
rename to server-android/src/main/res/values/strings.xml
diff --git a/tangemserver-android/src/test/java/com/tangem/tangemserver/ExampleUnitTest.java b/server-android/src/test/java/com/tangem/tangemserver/ExampleUnitTest.java
similarity index 100%
rename from tangemserver-android/src/test/java/com/tangem/tangemserver/ExampleUnitTest.java
rename to server-android/src/test/java/com/tangem/tangemserver/ExampleUnitTest.java
diff --git a/settings.gradle b/settings.gradle
index ad0149e0f6..ac821b1c6c 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app', ':tangemcard-android', ':tangemserver-android', ':tangemcommon'
+include ':app', ':card-android', ':server-android', ':card-common'