Updated on 2026-08-14

This commit is contained in:
Tangem 2023-03-07 17:30:28 +03:00
parent 58bbe85f29
commit 3466a64574
21 changed files with 256 additions and 285 deletions

View file

@ -1,16 +1,16 @@
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
kotlin("plugin.serialization")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.application)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.kotlin.serialization)
alias(deps.plugins.google.services)
alias(deps.plugins.hilt.android)
alias(deps.plugins.firebase.crashlytics)
id("configuration")
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar"))))
implementation(files("libs/walletconnect-1.5.6.aar"))
implementation(project(":domain"))
implementation(project(":common"))
implementation(project(":core:analytics"))
@ -33,86 +33,85 @@ dependencies {
implementation(project(":features:tester:impl"))
/** AndroidX libraries */
implementation(AndroidX.coreKtx)
implementation(AndroidX.appCompat)
implementation(AndroidX.fragmentKtx)
implementation(AndroidX.constraintLayout)
implementation(AndroidX.browser)
implementation(AndroidX.lifecycleRuntimeKtx)
implementation(AndroidX.lifecycleCommonJava8)
implementation(AndroidX.lifecycleViewModelKtx)
implementation(AndroidX.lifecycleLiveDataKtx)
implementation(AndroidX.activityCompose)
implementation(deps.androidx.core.ktx)
implementation(deps.androidx.appCompat)
implementation(deps.androidx.fragment.ktx)
implementation(deps.androidx.constraintLayout)
implementation(deps.androidx.activity.compose)
implementation(deps.androidx.browser)
implementation(deps.lifecycle.runtime.ktx)
implementation(deps.lifecycle.common.java8)
implementation(deps.lifecycle.viewModel.ktx)
/** Compose libraries */
implementation(Compose.material)
implementation(Compose.animation)
implementation(Compose.foundation)
implementation(Compose.ui)
implementation(Compose.uiTooling)
implementation(Compose.coil)
implementation(deps.compose.material)
implementation(deps.compose.animation)
implementation(deps.compose.foundation)
implementation(deps.compose.ui)
implementation(deps.compose.ui.tooling)
implementation(deps.compose.coil)
implementation(deps.compose.shimmer)
/** Firebase libraries */
implementation(platform(Firebase.bom))
implementation(Firebase.firebaseAnalytics)
implementation(Firebase.firebaseCrashlytics)
implementation(platform(deps.firebase.bom))
implementation(deps.firebase.analytics)
implementation(deps.firebase.crashlytics)
/** Tangem libraries */
implementation(Tangem.blockchain) {
implementation(deps.tangem.blockchain) {
exclude(module = "joda-time")
}
implementation(Tangem.cardCore)
implementation(Tangem.cardAndroid) {
implementation(deps.tangem.card.core)
implementation(deps.tangem.card.android) {
exclude(module = "joda-time")
}
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
/** Other libraries */
implementation(Library.materialComponent)
implementation(Library.googlePlayCore)
implementation(Library.googlePlayCoreKtx)
coreLibraryDesugaring(Library.desugarJdkLibs)
implementation(Library.timber)
implementation(Library.reKotlin)
implementation(Library.zxingQrCore)
implementation(Library.zxingQrBarcodeScanner)
implementation(Library.otaliastudiosCameraView)
implementation(Library.coil)
implementation(Library.appsflyer)
implementation(Library.amplitude)
implementation(Library.kotsonGsonExt)
implementation(deps.material)
implementation(deps.googlePlay.core)
implementation(deps.googlePlay.core.ktx)
implementation(deps.googlePlay.services.wallet)
coreLibraryDesugaring(deps.desugar)
implementation(deps.timber)
implementation(deps.reKotlin)
implementation(deps.zxing.qrCore)
implementation(deps.zxing.qrBarcodeScanner)
implementation(deps.otaliastudiosCameraView)
implementation(deps.coil)
implementation(deps.appsflyer)
implementation(deps.amplitude)
implementation(deps.kotsonGson)
//TODO: refactoring: remove it when all network services moved to the datasource module
implementation(Library.retrofit)
implementation(Library.retrofitMoshiConverter)
implementation(Library.moshi)
implementation(Library.moshiKotlin)
implementation(Library.okHttp)
implementation(Library.okHttpLogging)
implementation(Library.zendeskChat)
implementation(Library.zendeskMessaging)
implementation(Library.spongecastleCryptoCore)
implementation(Library.lottie)
implementation(Library.shopifyBuySdk) {
implementation(deps.retrofit)
implementation(deps.retrofit.moshi)
implementation(deps.moshi)
implementation(deps.moshi.kotlin)
implementation(deps.okHttp)
implementation(deps.okHttp.logging)
implementation(deps.zendesk.chat)
implementation(deps.zendesk.messaging)
implementation(deps.spongecastle.core)
implementation(deps.lottie)
implementation(deps.shopify.buy) {
exclude(group = "com.shopify.graphql.support")
exclude(module = "joda-time")
}
implementation(Library.accompanistAppCompatTheme)
implementation(Library.accompanistSystemUiController)
implementation(Library.accompanistWebView)
implementation(Library.xmlShimmer)
implementation(Library.viewBindingDelegate)
implementation(Library.armadillo)
implementation(Library.googlePlayServicesWallet)
implementation(Library.composeShimmer)
implementation(Library.mviCoreWatcher)
implementation(Library.kotlinSerialization)
implementation(deps.compose.accompanist.appCompatTheme)
implementation(deps.compose.accompanist.systemUiController)
implementation(deps.compose.accompanist.webView)
implementation(deps.xmlShimmer)
implementation(deps.viewBindingDelegate)
implementation(deps.armadillo)
implementation(deps.mviCore.watcher)
implementation(deps.kotlin.serialization)
/** Testing libraries */
testImplementation(Test.junit)
testImplementation(Test.truth)
androidTestImplementation(Test.junitAndroidExt)
androidTestImplementation(Test.espresso)
testImplementation(deps.test.junit)
testImplementation(deps.test.truth)
androidTestImplementation(deps.test.junit.android)
androidTestImplementation(deps.test.espresso)
}

View file

@ -1,37 +1,13 @@
buildscript {
repositories {
google()
mavenCentral()
maven(url = "https://maven.fabric.io/public")
}
dependencies {
classpath(ClasspathDependency.AndroidGradlePlugin)
classpath(ClasspathDependency.KotlinGradlePlugin)
classpath(ClasspathDependency.AndroidMavenGradlePlugin)
classpath(ClasspathDependency.GoogleServices)
classpath(ClasspathDependency.GoogleFirebaseCrashlytics)
}
}
plugins {
id("com.google.dagger.hilt.android") version "2.44" apply false
kotlin("plugin.serialization") version Versions.kotlin apply false
}
allprojects {
repositories {
google()
jcenter() // unable to replace with mavenCentral() due to rekotlin and com.otaliastudios:cameraview
mavenLocal()
maven("https://nexus.tangem-tech.com/repository/maven-releases/")
maven("https://jitpack.io")
maven("https://zendesk.jfrog.io/zendesk/repo")
}
}
subprojects {
apply(plugin = "detekt-convention")
alias(deps.plugins.kotlin.android) apply false
alias(deps.plugins.kotlin.jvm) apply false
alias(deps.plugins.kotlin.serialization) apply false
alias(deps.plugins.kotlin.kapt) apply false
alias(deps.plugins.android.application) apply false
alias(deps.plugins.android.library) apply false
alias(deps.plugins.hilt.android) apply false
alias(deps.plugins.google.services) apply false
alias(deps.plugins.firebase.crashlytics) apply false
}
tasks.register("clean", Delete::class) {

View file

@ -1,4 +1,4 @@
plugins {
kotlin("jvm")
alias(deps.plugins.kotlin.jvm)
id("configuration")
}

View file

@ -1,16 +1,16 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
dependencies {
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
/** Core shouldn't depends on core, but in case with utils and logging its necessary */
implementation(project(":core:utils"))

View file

@ -1,8 +1,8 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
@ -13,31 +13,31 @@ dependencies {
implementation(project(":libs:auth"))
/** Tangem libraries */
implementation(Tangem.blockchain)
implementation(Tangem.cardCore)
implementation(deps.tangem.blockchain)
implementation(deps.tangem.card.core)
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
/** Coroutines */
implementation(Library.coroutine)
implementation(deps.kotlin.coroutines)
/** Logging */
implementation(Library.timber)
implementation(deps.timber)
/** Network */
implementation(Library.krateSharedPref)
implementation(Library.moshi)
implementation(Library.moshiKotlin)
implementation(Library.okHttp)
implementation(Library.okHttpLogging)
implementation(Library.retrofit)
implementation(Library.retrofitMoshiConverter)
implementation(deps.krateSharedPref)
implementation(deps.moshi)
implementation(deps.moshi.kotlin)
implementation(deps.okHttp)
implementation(deps.okHttp.logging)
implementation(deps.retrofit)
implementation(deps.retrofit.moshi)
/** Time */
implementation(Library.jodatime)
implementation(deps.jodatime)
/** Security */
implementation(Library.spongecastleCryptoCore)
implementation(deps.spongecastle.core)
}

View file

@ -1,17 +1,17 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
dependencies {
implementation(Library.moshi)
implementation(Library.moshiKotlin)
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(Library.timber)
implementation(deps.moshi)
implementation(deps.moshi.kotlin)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
implementation(deps.timber)
implementation(project(":core:datasource"))
}

View file

@ -1,5 +1,5 @@
plugins {
id("com.android.library")
kotlin("android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
id("configuration")
}

View file

@ -1,22 +1,22 @@
plugins {
id("com.android.library")
kotlin("android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
id("configuration")
}
dependencies {
/** AndroidX libraries */
implementation(AndroidX.fragmentKtx)
implementation(deps.androidx.fragment.ktx)
/** Compose */
implementation(Compose.foundation)
implementation(Compose.material)
implementation(Compose.uiTooling)
implementation(deps.compose.foundation)
implementation(deps.compose.material)
implementation(deps.compose.ui.tooling)
/** Other libraries */
implementation(Library.accompanistSystemUiController)
implementation(Library.materialComponent)
implementation(Library.composeShimmer)
implementation(deps.compose.accompanist.systemUiController)
implementation(deps.material)
implementation(deps.compose.shimmer)
implementation(project(":core:res"))
}

View file

@ -1,15 +1,15 @@
plugins {
kotlin("jvm")
kotlin("kapt")
alias(deps.plugins.kotlin.jvm)
alias(deps.plugins.kotlin.kapt)
id("configuration")
}
dependencies {
/** DI */
implementation(Library.hiltCore)
kapt(Library.hiltKapt)
implementation(deps.hilt.core)
kapt(deps.hilt.kapt)
/** Coroutines */
implementation(Library.coroutine)
implementation(deps.kotlin.coroutines)
}

View file

@ -1,6 +1,6 @@
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
id("configuration")
}
@ -11,28 +11,28 @@ dependencies {
implementation(project(":libs:auth"))
/** Tangem libraries */
implementation(Tangem.blockchain) {
implementation(deps.tangem.blockchain) {
exclude(module = "joda-time")
}
implementation(Tangem.cardCore)
implementation(Tangem.cardAndroid) {
implementation(deps.tangem.card.core)
implementation(deps.tangem.card.android) {
exclude(module = "joda-time")
}
/** Other libraries */
implementation(Library.reKotlin)
implementation(deps.reKotlin)
//TODO: refactoring: remove it when all network services moved to the datasource module
implementation(Library.retrofit)
implementation(Library.retrofitMoshiConverter)
implementation(Library.moshi)
implementation(Library.moshiKotlin)
implementation(Library.okHttpLogging)
implementation(Library.timber)
implementation(Library.coroutine)
implementation(deps.retrofit)
implementation(deps.retrofit.moshi)
implementation(deps.moshi)
implementation(deps.moshi.kotlin)
implementation(deps.okHttp.logging)
implementation(deps.timber)
implementation(deps.kotlin.coroutines)
/** Testing libraries */
testImplementation(Test.junit)
testImplementation(Test.truth)
androidTestImplementation(Test.junitAndroidExt)
androidTestImplementation(Test.espresso)
testImplementation(deps.test.junit)
testImplementation(deps.test.truth)
androidTestImplementation(deps.test.junit.android)
androidTestImplementation(deps.test.espresso)
}

View file

@ -1,8 +1,8 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
@ -14,9 +14,9 @@ dependencies {
implementation(project(":features:referral:domain"))
/** Time */
implementation(Library.jodatime)
implementation(deps.jodatime)
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
}

View file

@ -1,6 +1,6 @@
plugins {
kotlin("jvm")
kotlin("kapt")
alias(deps.plugins.kotlin.jvm)
alias(deps.plugins.kotlin.kapt)
id("configuration")
}
@ -11,9 +11,9 @@ dependencies {
implementation(project(":libs:crypto"))
/** Time */
implementation(Library.jodatime)
implementation(deps.jodatime)
/** DI */
implementation(Library.hiltCore)
kapt(Library.hiltKapt)
implementation(deps.hilt.core)
kapt(deps.hilt.kapt)
}

View file

@ -1,8 +1,8 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
@ -14,24 +14,24 @@ dependencies {
implementation(project(":core:ui"))
/** AndroidX */
implementation(AndroidX.appCompat)
implementation(AndroidX.fragmentKtx)
implementation(AndroidX.lifecycleViewModelKtx)
implementation(Library.materialComponent)
implementation(deps.androidx.appCompat)
implementation(deps.androidx.fragment.ktx)
implementation(deps.lifecycle.viewModel.ktx)
implementation(deps.material)
/** Compose */
implementation(Compose.foundation)
implementation(Compose.material)
implementation(Compose.uiTooling)
implementation(deps.compose.foundation)
implementation(deps.compose.material)
implementation(deps.compose.ui.tooling)
/** Domain */
implementation(project(":features:referral:domain"))
/** Other libraries */
implementation(Library.composeShimmer)
implementation(Library.accompanistWebView)
implementation(deps.compose.shimmer)
implementation(deps.compose.accompanist.webView)
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
}

View file

@ -1,8 +1,8 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
@ -14,9 +14,9 @@ dependencies {
implementation(project(":features:swap:domain"))
/** Network */
implementation(Library.retrofit)
implementation(deps.retrofit)
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
}

View file

@ -1,7 +1,7 @@
plugins {
kotlin("jvm")
kotlin("kapt")
kotlin("plugin.serialization")
alias(deps.plugins.kotlin.jvm)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.kotlin.serialization)
id("configuration")
}
@ -11,9 +11,9 @@ dependencies {
implementation(project(":core:utils"))
/** DI */
implementation(Library.hiltCore)
kapt(Library.hiltKapt)
implementation(deps.hilt.core)
kapt(deps.hilt.kapt)
/** Other Libraries **/
implementation(Library.kotlinSerialization)
implementation(deps.kotlin.serialization)
}

View file

@ -1,9 +1,9 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
kotlin("plugin.serialization")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.kotlin.serialization)
alias(deps.plugins.hilt.android)
id("configuration")
}
@ -14,28 +14,28 @@ dependencies {
implementation(project(":core:ui"))
/** AndroidX */
implementation(AndroidX.activityCompose)
implementation(AndroidX.appCompat)
implementation(AndroidX.fragmentKtx)
implementation(AndroidX.lifecycleViewModelKtx)
implementation(AndroidX.browser)
implementation(deps.androidx.activity.compose)
implementation(deps.androidx.appCompat)
implementation(deps.androidx.fragment.ktx)
implementation(deps.lifecycle.viewModel.ktx)
implementation(deps.androidx.browser)
/** Compose */
implementation(Compose.foundation)
implementation(Compose.material)
implementation(Compose.uiTooling)
implementation(Compose.coil)
implementation(Compose.constraintLayout)
implementation(deps.compose.foundation)
implementation(deps.compose.material)
implementation(deps.compose.ui.tooling)
implementation(deps.compose.coil)
implementation(deps.compose.constraintLayout)
/** Domain */
implementation(project(":features:swap:domain"))
/** Other libraries */
implementation(Library.composeShimmer)
implementation(Library.kotlinSerialization)
implementation(Library.timber)
implementation(deps.compose.shimmer)
implementation(deps.kotlin.serialization)
implementation(deps.timber)
/** DI */
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
}

View file

@ -1,36 +1,5 @@
plugins {
id("com.android.library")
kotlin("android")
}
android {
defaultConfig {
compileSdk = AppConfig.compileSdkVersion
minSdk = AppConfig.minSdkVersion
targetSdk = AppConfig.targetSdkVersion
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
buildTypes {
create("debug_beta") {
initWith(getByName("release"))
BuildConfigFieldFactory(
fields = listOf(
Field.Environment("release"),
Field.TestActionEnabled(true),
Field.LogEnabled(true),
),
builder = ::buildConfigField,
).create()
}
}
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
id("configuration")
}

View file

@ -1,27 +1,27 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.dagger.hilt.android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
alias(deps.plugins.hilt.android)
id("configuration")
}
dependencies {
/** AndroidX */
implementation(AndroidX.activityCompose)
implementation(deps.androidx.activity.compose)
/** Compose */
implementation(Compose.foundation)
implementation(Compose.hiltNavigation)
implementation(Compose.material)
implementation(Compose.navigation)
implementation(Compose.ui)
implementation(Compose.uiTooling)
implementation(deps.compose.material)
implementation(deps.compose.foundation)
implementation(deps.compose.navigation)
implementation(deps.compose.navigation.hilt)
implementation(deps.compose.ui)
implementation(deps.compose.ui.tooling)
implementation(deps.compose.accompanist.systemUiController)
/** DI */
implementation(Library.accompanistSystemUiController)
implementation(Library.hilt)
kapt(Library.hiltKapt)
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
/** Core modules */
implementation(project(":core:featuretoggles"))

View file

@ -1,5 +1,5 @@
plugins {
id("com.android.library")
kotlin("android")
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
id("configuration")
}

View file

@ -1,10 +1,10 @@
plugins {
kotlin("jvm")
alias(deps.plugins.kotlin.jvm)
id("configuration")
}
dependencies {
/** Coroutines */
implementation(Library.coroutine)
implementation(deps.kotlin.coroutines)
}

View file

@ -1,9 +1,36 @@
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
includeBuild("plugins/configuration")
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
jcenter() // unable to replace with mavenCentral() due to rekotlin and com.otaliastudios:cameraview
maven("https://nexus.tangem-tech.com/repository/maven-releases/")
maven("https://jitpack.io")
maven("https://zendesk.jfrog.io/zendesk/repo")
}
versionCatalogs {
create("deps") {
from(files("gradle/dependencies.toml"))
}
}
}
include(":app")
include(":domain")
include(":common")
includeBuild("includedBuild/configuration")
// region Core modules
include(":core:analytics")
include(":core:datasource")