192 lines
7.2 KiB
Groovy
192 lines
7.2 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: 'io.fabric'
|
|
apply plugin: 'com.google.firebase.firebase-perf'
|
|
//apply plugin: 'com.github.ben-manes.versions'
|
|
|
|
archivesBaseName = 'zcash-android-wallet'
|
|
group = 'cash.z.ecc.android'
|
|
version = '1.0.0-alpha23'
|
|
|
|
android {
|
|
compileSdkVersion Deps.compileSdkVersion
|
|
buildToolsVersion Deps.buildToolsVersion
|
|
viewBinding.enabled = true
|
|
defaultConfig {
|
|
applicationId 'cash.z.ecc.android'
|
|
minSdkVersion Deps.minSdkVersion
|
|
targetSdkVersion Deps.targetSdkVersion
|
|
versionCode = 1_00_00_023
|
|
// last digits are alpha(0XX) beta(2XX) rc(4XX) release(8XX) dev(9XX). Ex: 1_08_04_401 is an release candidate build of version 1.8.4 and 1_08_04_800 would be the final release.
|
|
versionName = "$version"
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
testInstrumentationRunnerArguments clearPackageData: 'true'
|
|
multiDexEnabled true
|
|
// manifestPlaceholders = [rollbarToken: properties["rollbarToken"]]
|
|
}
|
|
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']
|
|
}
|
|
}
|
|
|
|
// TODO: delete this test code
|
|
variantFilter { variant ->
|
|
def names = variant.flavors*.name
|
|
// To check for a certain build type, use variant.buildType.name == "<buildType>"
|
|
if (names.contains("zcashtestnet") || names.contains("Zcashtestnet") || variant.buildType.name == "release") {
|
|
// Gradle ignores any variants that satisfy the conditions above.
|
|
setIgnore(true)
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
useProguard false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
debug {
|
|
minifyEnabled false
|
|
shrinkResources false
|
|
useProguard false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
// mock {
|
|
// initWith debug
|
|
// matchingFallbacks = ['debug', 'release', 'zcashtestnet']
|
|
// }
|
|
}
|
|
signingConfigs {
|
|
debug {
|
|
// storeFile file("debug.keystore")
|
|
// keyAlias "androiddebugkey"
|
|
// keyPassword "android"
|
|
// storePassword "android"
|
|
}
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = "1.8"
|
|
}
|
|
|
|
kapt {
|
|
arguments {
|
|
arg 'dagger.fastInit', 'enabled'
|
|
arg 'dagger.fullBindingGraphValidation', 'ERROR'
|
|
arg 'dagger.gradle.incremental'
|
|
}
|
|
}
|
|
applicationVariants.all { variant ->
|
|
variant.outputs.all {
|
|
outputFileName = "$archivesBaseName-v${defaultConfig.versionName}-${variant.buildType.name}.apk"
|
|
}
|
|
}
|
|
}
|
|
|
|
crashlytics {
|
|
enableNdk true
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
implementation project(':qrecycler')
|
|
implementation project(':feedback')
|
|
implementation project(':mnemonic')
|
|
implementation project(':lockbox')
|
|
implementation project(':sdk')
|
|
|
|
// Zcash
|
|
implementation 'com.github.zcash:zcash-android-wallet-plugins:1.0.0'
|
|
|
|
// Kotlin
|
|
implementation Deps.Kotlin.STDLIB
|
|
|
|
// Android
|
|
implementation Deps.AndroidX.APPCOMPAT
|
|
implementation Deps.AndroidX.CORE_KTX
|
|
implementation Deps.AndroidX.CONSTRAINT_LAYOUT
|
|
implementation Deps.AndroidX.Lifecycle.LIFECYCLE_RUNTIME_KTX
|
|
implementation Deps.AndroidX.Lifecycle.LIFECYCLE_EXTENSIONS
|
|
implementation Deps.AndroidX.Navigation.FRAGMENT_KTX
|
|
implementation Deps.AndroidX.Navigation.UI_KTX
|
|
implementation "androidx.room:room-ktx:2.2.3"
|
|
implementation "androidx.paging:paging-runtime-ktx:2.1.1"
|
|
implementation 'com.google.guava:guava:27.0.1-android'
|
|
kapt "androidx.room:room-compiler:2.2.3"
|
|
|
|
// Google
|
|
implementation Deps.Google.MATERIAL
|
|
|
|
// Dagger
|
|
implementation Deps.Dagger.ANDROID_SUPPORT
|
|
kapt Deps.Dagger.ANDROID_PROCESSOR
|
|
kapt Deps.Dagger.COMPILER
|
|
|
|
// Testing these BIP39 dependencies
|
|
implementation 'com.madgag.spongycastle:core:1.58.0.0'
|
|
implementation 'io.github.novacrypto:BIP39:2019.01.27'
|
|
implementation 'io.github.novacrypto:securestring:2019.01.27'
|
|
|
|
// grpc-java
|
|
implementation "io.grpc:grpc-okhttp:1.25.0"
|
|
implementation "io.grpc:grpc-android:1.25.0"
|
|
implementation "io.grpc:grpc-protobuf-lite:1.25.0"
|
|
implementation "io.grpc:grpc-stub:1.25.0"
|
|
implementation 'javax.annotation:javax.annotation-api:1.3.2'
|
|
// solves error: Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules jetified-guava-26.0-android.jar (com.google.guava:guava:26.0-android) and listenablefuture-1.0.jar (com.google.guava:listenablefuture:1.0)
|
|
// per this recommendation from Chris Povirk, given guava's decision to split ListenableFuture away from Guava: https://groups.google.com/d/msg/guava-discuss/GghaKwusjcY/bCIAKfzOEwAJ
|
|
implementation 'com.google.guava:guava:27.0.1-android'
|
|
|
|
// Analytics
|
|
implementation 'com.mixpanel.android:mixpanel-android:5.6.3'
|
|
implementation 'com.google.firebase:firebase-analytics:17.2.2'
|
|
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
|
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1'
|
|
implementation 'com.google.firebase:firebase-perf:19.0.5'
|
|
|
|
// QR Scanning
|
|
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
|
|
implementation 'androidx.camera:camera-core:1.0.0-alpha10'
|
|
implementation 'androidx.camera:camera-camera2:1.0.0-alpha10'
|
|
implementation "androidx.camera:camera-view:1.0.0-alpha07"
|
|
implementation "androidx.camera:camera-extensions:1.0.0-alpha07"
|
|
implementation "androidx.camera:camera-lifecycle:1.0.0-alpha10"
|
|
|
|
// Misc.
|
|
implementation 'com.airbnb.android:lottie:3.1.0'
|
|
implementation 'com.facebook.stetho:stetho:1.5.1'
|
|
// check for build errors at https://jitpack.io/com/github/gmale/chips-input-layout/<version>/build.log
|
|
// implementation 'com.github.gmale:chips-input-layout:4750760a7222bc04ca48266b387456d2b03541a7'
|
|
|
|
implementation project(':chipsinputlayout')
|
|
implementation 'androidx.annotation:annotation:1.1.0'
|
|
|
|
// Tests
|
|
|
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
|
testImplementation Deps.Test.JUNIT
|
|
testImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0"
|
|
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.3.3'
|
|
androidTestImplementation Deps.Test.Android.JUNIT
|
|
androidTestImplementation Deps.Test.Android.ESPRESSO
|
|
}
|