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.github.ben-manes.versions' archivesBaseName = 'zcash-android-wallet' group = 'cash.z.ecc.android' version = '1.0.0-alpha03' 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_003 // last digits are alpha(0XX) beta(2XX) rc(4XX) release(8XX). 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' } 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'] } } buildTypes { release { minifyEnabled true useProguard false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { minifyEnabled true 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" } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(':qrecycler') implementation project(':feedback') implementation project(':mnemonic') implementation project(':lockbox') // 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.Navigation.FRAGMENT_KTX implementation Deps.AndroidX.Navigation.UI_KTX // Google implementation Deps.Google.MATERIAL // Dagger implementation Deps.Dagger.ANDROID_SUPPORT kapt Deps.Dagger.ANDROID_PROCESSOR kapt Deps.Dagger.COMPILER // grpc-java implementation "io.grpc:grpc-okhttp:1.21.0" implementation "io.grpc:grpc-android:1.21.0" implementation "io.grpc:grpc-protobuf-lite:1.21.0" implementation "io.grpc:grpc-stub:1.21.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' implementation 'com.mixpanel.android:mixpanel-android:5.6.3' // Tests implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation Deps.Test.JUNIT androidTestImplementation Deps.Test.Android.JUNIT androidTestImplementation Deps.Test.Android.ESPRESSO }