187 lines
6.7 KiB
Groovy
187 lines
6.7 KiB
Groovy
import cash.z.ecc.android.Deps
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
apply plugin: 'kotlin-kapt'
|
|
apply plugin: 'com.google.gms.google-services'
|
|
//apply plugin: 'com.github.ben-manes.versions'
|
|
|
|
archivesBaseName = 'zcash-android-wallet'
|
|
group = 'cash.z.ecc.android'
|
|
version = Deps.versionName
|
|
|
|
android {
|
|
ndkVersion "21.1.6352462"
|
|
compileSdkVersion Deps.compileSdkVersion
|
|
buildToolsVersion Deps.buildToolsVersion
|
|
viewBinding.enabled = true
|
|
defaultConfig {
|
|
applicationId Deps.packageName
|
|
minSdkVersion Deps.minSdkVersion
|
|
targetSdkVersion Deps.targetSdkVersion
|
|
versionCode = Deps.versionCode
|
|
versionName = Deps.versionName
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
testInstrumentationRunnerArguments clearPackageData: 'true'
|
|
multiDexEnabled true
|
|
resValue 'string', 'bugsnag_api_key', "${(project.findProperty('BUGSNAG_API_KEY') ?: System.getenv('BUGSNAG_API_KEY')) ?: ''}"
|
|
resValue 'string', 'file_authority', "${Deps.packageName}.fileprovider"
|
|
|
|
// this setting allows using color resources in vector drawables, rather than hardcoded values (note: only works when minApi is 21)
|
|
// per https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html: If set to an empty collection, all special handling of vector drawables will be disabled.
|
|
vectorDrawables.generatedDensities = []
|
|
}
|
|
flavorDimensions 'network'
|
|
productFlavors {
|
|
// would rather name them "testnet" and "mainnet" but product flavor names cannot start with the word "test"
|
|
zcashtestnet {
|
|
dimension 'network'
|
|
applicationId 'cash.z.ecc.android.testnet'
|
|
matchingFallbacks = ['zcashtestnet', 'debug']
|
|
}
|
|
|
|
zcashmainnet {
|
|
dimension 'network'
|
|
matchingFallbacks = ['zcashmainnet', 'release']
|
|
}
|
|
}
|
|
signingConfigs {
|
|
placeholder {
|
|
storeFile file("${rootProject.projectDir}/placeholder.keystore")
|
|
keyAlias "androiddebugkey"
|
|
keyPassword "android"
|
|
storePassword "android"
|
|
}
|
|
}
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
shrinkResources false
|
|
useProguard false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
signingConfig signingConfigs.placeholder
|
|
}
|
|
debug {
|
|
minifyEnabled false
|
|
shrinkResources false
|
|
useProguard false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
// builds for testing only in the wallet team, typically unfinished features
|
|
// this flavor can be installed alongside the others
|
|
qa {
|
|
initWith debug
|
|
debuggable true
|
|
applicationIdSuffix ".internal"
|
|
resValue 'string', 'file_authority', "${Deps.packageName}.internal.fileprovider"
|
|
matchingFallbacks = ['debug']
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = "1.8"
|
|
freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi"
|
|
// freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.ObsoleteCoroutinesApi"
|
|
// freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.FlowPreview"
|
|
}
|
|
kapt {
|
|
arguments {
|
|
arg 'dagger.fastInit', 'enabled'
|
|
arg 'dagger.fullBindingGraphValidation', 'ERROR'
|
|
arg 'dagger.gradle.incremental'
|
|
}
|
|
}
|
|
packagingOptions {
|
|
exclude 'META-INF/AL2.0'
|
|
exclude 'META-INF/LGPL2.1'
|
|
}
|
|
applicationVariants.all { variant ->
|
|
variant.outputs.all {
|
|
if (variant.buildType.name == "qa") {
|
|
it.versionNameOverride = "${Deps.versionName}-QA"
|
|
}
|
|
outputFileName = "$archivesBaseName-v${Deps.versionName}-${variant.buildType.name}.apk"
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
implementation project(':qrecycler')
|
|
implementation project(':feedback')
|
|
implementation project(':mnemonic')
|
|
implementation project(':lockbox')
|
|
|
|
// Zcash
|
|
implementation Deps.Zcash.ANDROID_WALLET_PLUGINS
|
|
zcashtestnetImplementation Deps.Zcash.Sdk.TESTNET
|
|
zcashmainnetImplementation Deps.Zcash.Sdk.MAINNET
|
|
|
|
// Kotlin
|
|
implementation Deps.Kotlin.STDLIB
|
|
|
|
// Android
|
|
implementation Deps.AndroidX.ANNOTATION
|
|
implementation Deps.AndroidX.APPCOMPAT
|
|
implementation Deps.AndroidX.BIOMETRICS
|
|
implementation Deps.AndroidX.CONSTRAINT_LAYOUT
|
|
implementation Deps.AndroidX.CORE_KTX
|
|
implementation Deps.AndroidX.FRAGMENT_KTX
|
|
implementation Deps.AndroidX.LEGACY
|
|
implementation Deps.AndroidX.PAGING
|
|
implementation Deps.AndroidX.RECYCLER
|
|
implementation Deps.AndroidX.CameraX.CAMERA2
|
|
implementation Deps.AndroidX.CameraX.CORE
|
|
implementation Deps.AndroidX.CameraX.LIFECYCLE
|
|
implementation Deps.AndroidX.CameraX.View.EXT
|
|
implementation Deps.AndroidX.CameraX.View.VIEW
|
|
implementation Deps.AndroidX.Lifecycle.LIFECYCLE_EXTENSIONS
|
|
implementation Deps.AndroidX.Lifecycle.LIFECYCLE_RUNTIME_KTX
|
|
implementation Deps.AndroidX.Navigation.FRAGMENT_KTX
|
|
implementation Deps.AndroidX.Navigation.UI_KTX
|
|
implementation Deps.AndroidX.Room.ROOM_KTX
|
|
kapt Deps.AndroidX.Room.ROOM_COMPILER
|
|
|
|
// Google
|
|
implementation Deps.Google.GUAVA
|
|
implementation Deps.Google.MATERIAL
|
|
implementation Deps.Google.ML_VISION // QR Scanner
|
|
|
|
// Dagger
|
|
implementation Deps.Dagger.ANDROID_SUPPORT
|
|
kapt Deps.Dagger.ANDROID_PROCESSOR
|
|
kapt Deps.Dagger.COMPILER
|
|
|
|
// grpc-java
|
|
implementation Deps.Grpc.ANDROID
|
|
implementation Deps.Grpc.OKHTTP
|
|
implementation Deps.Grpc.PROTOBUG
|
|
implementation Deps.Grpc.STUB
|
|
implementation Deps.JavaX.JAVA_ANNOTATION
|
|
|
|
// Analytics (for dogfooding/crash-reporting/feedback only on internal team builds)
|
|
implementation Deps.Analytics.MIXPANEL
|
|
implementation Deps.Analytics.BUGSNAG
|
|
|
|
// Misc.
|
|
implementation Deps.Misc.LOTTIE
|
|
implementation Deps.Misc.CHIPS
|
|
|
|
// Tests
|
|
testImplementation Deps.Test.COROUTINES_TEST
|
|
testImplementation Deps.Test.JUNIT
|
|
testImplementation Deps.Test.MOKITO
|
|
testImplementation Deps.Test.MOKITO_KOTLIN
|
|
testImplementation Deps.Test.COROUTINES_TEST
|
|
testImplementation Deps.Zcash.Sdk.TESTNET
|
|
|
|
androidTestImplementation Deps.Test.Android.JUNIT
|
|
androidTestImplementation Deps.Test.Android.ESPRESSO
|
|
}
|
|
|
|
defaultTasks 'clean', 'assembleZcashmainnetRelease' |