Updated on 2026-08-14

This commit is contained in:
Tangem 2022-11-11 13:54:04 +03:00
parent e0f90419f4
commit a6e04a4344
21 changed files with 540 additions and 359 deletions

View file

@ -0,0 +1,8 @@
object AppConfig {
const val packageName = "com.tangem.wallet"
const val versionCode = 1
const val versionName = "1.0.0.-SNAPSHOT"
const val minSdkVersion = 21
const val targetSdkVersion = 33
const val compileSdkVersion = 33
}

View file

@ -0,0 +1,9 @@
object ClasspathDependency {
const val AndroidGradlePlugin = "com.android.tools.build:gradle:" + Versions.androidGradlePlugin
const val AndroidMavenGradlePlugin = "com.github.dcendents:android-maven-gradle-plugin:" +
Versions.androidMavenGradlePlugin
const val GoogleFirebaseCrashlytics = "com.google.firebase:firebase-crashlytics-gradle:" +
Versions.googleFirebaseCrashlytics
const val GoogleServices = "com.google.gms:google-services:" + Versions.googleServices
const val KotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:" + Versions.kotlin
}

View file

@ -0,0 +1,26 @@
typealias ConfigFieldBuilder = (String, String, String) -> Unit
class BuildConfigFieldFactory(
private val fields: List<Field>,
private val builder: ConfigFieldBuilder,
) {
fun create() {
fields.forEach { field -> builder(field.type, field.name, field.value) }
}
}
/**
* Build config field
*
* @property type field type
* @property name field name
* @property value field value
*/
sealed class Field(val type: String, val name: String, val value: String) {
class Environment(value: String) : Field("String", "ENVIRONMENT", "\"$value\"")
class TestActionEnabled(isEnabled: Boolean) : Field("Boolean","TEST_ACTION_ENABLED", isEnabled.toString())
class LogEnabled(isEnabled: Boolean) : Field("Boolean","LOG_ENABLED", isEnabled.toString())
}

View file

@ -0,0 +1,77 @@
object AndroidX {
const val activityCompose = "androidx.activity:activity-compose:" + Versions.androidxActivityCompose
const val appCompat = "androidx.appcompat:appcompat:" + Versions.androidxAppCompat
const val browser = "androidx.browser:browser:" + Versions.androidxBrowser
const val constraintLayout = "androidx.constraintlayout:constraintlayout:" + Versions.androidxConstraintLayout
const val coreKtx = "androidx.core:core-ktx:" + Versions.androidxCore
const val fragmentKtx = "androidx.fragment:fragment-ktx:" + Versions.androidxFragment
const val lifecycleCommonJava8 = "androidx.lifecycle:lifecycle-common-java8:" + Versions.androidxLifecycle
const val lifecycleLiveDataKtx = "androidx.lifecycle:lifecycle-livedata-ktx:" + Versions.androidxLifecycle
const val lifecycleRuntimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:" + Versions.androidxLifecycle
const val lifecycleViewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:" + Versions.androidxLifecycle
}
object Compose {
const val animation = "androidx.compose.animation:animation:" + Versions.compose
const val coil = "io.coil-kt:coil-compose:" + Versions.coil
const val foundation = "androidx.compose.foundation:foundation:" + Versions.composeFoundation
const val material = "androidx.compose.material:material:" + Versions.compose
const val ui = "androidx.compose.ui:ui:" + Versions.compose
const val uiTooling = "androidx.compose.ui:ui-tooling:" + Versions.compose
}
object Firebase {
const val bom = "com.google.firebase:firebase-bom:" + Versions.firebase
const val firebaseAnalytics = "com.google.firebase:firebase-analytics-ktx"
const val firebaseCrashlytics = "com.google.firebase:firebase-crashlytics-ktx"
}
object Library {
const val accompanistAppCompatTheme = "com.google.accompanist:accompanist-appcompat-theme:" + Versions.accompanist
const val accompanistSystemUiController =
"com.google.accompanist:accompanist-systemuicontroller:" + Versions.accompanist
const val amplitude = "com.amplitude:android-sdk:" + Versions.amplitude
const val appsflyer = "com.appsflyer:af-android-sdk:" + Versions.appsflyer
const val armadillo = "at.favre.lib:armadillo:" + Versions.armadillo
const val coil = "io.coil-kt:coil:" + Versions.coil
const val coroutine = "org.jetbrains.kotlinx:kotlinx-coroutines-core:" + Versions.coroutine
const val desugarJdkLibs = "com.android.tools:desugar_jdk_libs:" + Versions.desugarJdkLibs
const val googlePlayCore = "com.google.android.play:core:" + Versions.googlePlayCore
const val googlePlayCoreKtx = "com.google.android.play:core-ktx:" + Versions.googlePlayCoreKtx
const val googlePlayServicesWallet =
"com.google.android.gms:play-services-wallet:" + Versions.googlePlayServicesWallet
const val kotsonGsonExt = "com.github.salomonbrys.kotson:kotson:" + Versions.kotsonGsonExt
const val lottie = "com.airbnb.android:lottie:" + Versions.lottie
const val materialComponent = "com.google.android.material:material:" + Versions.googleMaterialComponent
const val moshi = "com.squareup.moshi:moshi:" + Versions.moshi
const val moshiKotlin = "com.squareup.moshi:moshi-kotlin:" + Versions.moshi
const val okHttp = "com.squareup.okhttp3:okhttp:" + Versions.okhttp
const val okHttpLogging = "com.squareup.okhttp3:logging-interceptor:" + Versions.okhttp
const val otaliastudiosCameraView = "com.otaliastudios:cameraview:" + Versions.otaliastudiosCameraView
const val shopifyBuySdk = "com.shopify.mobilebuysdk:buy3:" + Versions.shopifyBuySdk
const val skydovesVeil = "com.github.skydoves:androidveil:" + Versions.skydovesAndroidVeil
const val spongecastleCryptoCore = "com.madgag.spongycastle:core:" + Versions.spongycastleCryptoCore
const val reKotlin = "org.rekotlin:rekotlin:" + Versions.rekotlin
const val retrofit = "com.squareup.retrofit2:retrofit:" + Versions.retrofit
const val retrofitMoshiConverter = "com.squareup.retrofit2:converter-moshi:" + Versions.retrofitMoshiConverter
const val timber = "com.jakewharton.timber:timber:" + Versions.timber
const val viewBindingDelegate =
"com.github.kirich1409:viewbindingpropertydelegate-noreflection:" + Versions.viewBindingDelegate
const val zendeskChat = "com.zendesk:chat:" + Versions.zendeskChat
const val zendeskMessaging = "com.zendesk:messaging:" + Versions.zendeskMessaging
const val zxingQrBarcodeScanner = "me.dm7.barcodescanner:zxing:" + Versions.zxingQrBarcodeScanner
const val zxingQrCore = "com.google.zxing:core:" + Versions.zxingQrCode
}
object Tangem {
const val blockchain = "com.tangem:blockchain:" + Versions.tangemBlockchainSdk
const val cardAndroid = "com.tangem.tangem-sdk-kotlin:android:" + Versions.tangemCardSgk
const val cardCore = "com.tangem.tangem-sdk-kotlin:core:" + Versions.tangemCardSgk
}
object Test {
const val espresso = "androidx.test.espresso:espresso-core:" + Versions.espresso
const val junit = "junit:junit:" + Versions.junit
const val junitAndroidExt = "androidx.test.ext:junit:" + Versions.junitAndroidExt
const val truth = "com.google.truth:truth:" + Versions.truth
}

View file

@ -0,0 +1,68 @@
object Versions {
// region Classpath
const val androidGradlePlugin = "7.1.3"
const val androidMavenGradlePlugin = "2.1"
const val googleFirebaseCrashlytics = "2.7.1"
const val googleServices = "4.3.10"
const val kotlin = "1.6.10"
// endregion Classpath
// region AndroidX
const val androidxActivityCompose = "1.5.0"
const val androidxAppCompat = "1.5.1"
const val androidxBrowser = "1.4.0"
const val androidxConstraintLayout = "2.1.4"
const val androidxCore = "1.9.0"
const val androidxFragment = "1.5.3"
const val androidxLifecycle = "2.5.1"
// endregion AndroidX
// region Compose
const val compose = "1.1.0"
const val composeFoundation = "1.2.0-rc03"
// endregion Compose
// region Other libraries
const val accompanist = "0.23.0"
const val amplitude = "2.36.1"
const val appsflyer = "6.5.1"
const val armadillo = "0.9.0"
const val coil = "2.1.0"
const val coroutine = "1.5.2"
const val desugarJdkLibs = "1.1.5"
const val firebase = "26.0.0"
const val googleMaterialComponent = "1.6.1"
const val googlePlayCore = "1.10.3"
const val googlePlayCoreKtx = "1.8.1"
const val googlePlayServicesWallet = "19.1.0"
const val kotsonGsonExt = "2.5.0"
const val lottie = "3.4.0"
const val moshi = "1.12.0"
const val okhttp = "4.9.3"
const val otaliastudiosCameraView = "2.6.3"
const val rekotlin = "1.0.4"
const val retrofit = "2.8.1"
const val retrofitMoshiConverter = "2.6.0"
const val shopifyBuySdk = "12.0.0"
const val skydovesAndroidVeil = "1.1.2"
const val spongycastleCryptoCore = "1.58.0.0"
const val timber = "4.7.1"
const val viewBindingDelegate = "1.5.6"
const val zendeskChat = "3.3.5"
const val zendeskMessaging = "5.2.4"
const val zxingQrBarcodeScanner = "1.9.8"
const val zxingQrCode = "3.3.3"
// endregion Other libraries
// region Tangem
const val tangemBlockchainSdk = "develop-133"
const val tangemCardSgk = "develop-165"
// endregion Tangem
// region Testing
const val espresso = "3.4.0"
const val junit = "4.13.2"
const val truth = "1.1.3"
const val junitAndroidExt = "1.1.3"
// endregion Testing
}