// note: had to abandon the 'plugins' syntax because the navigation graph editor appears to have a bug where it adds kotlin-android and kotlin-android extensions "automatically" when it doesn't detect them. This would constantly break the build. TODO: file a bug on this at b.android.com // the main side effect is that plugins have to include their classpath in the parent script, rather than just specifying the 'version' in the plugins dsl apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' apply plugin: 'deploygate' apply plugin: 'com.github.ben-manes.versions' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion buildConfig.compileSdkVersion defaultConfig { applicationId "cash.z.android.wallet" minSdkVersion buildConfig.minSdkVersion targetSdkVersion buildConfig.targetSdkVersion versionCode 17 // todo: change this to 1_00_04 format, once we graduate beyond zero for the major version number because leading zeros indicate on octal number. versionName "0.4.6-alpha" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled true } dataBinding { enabled true } flavorDimensions 'network' productFlavors { // product flavor names cannot start with the word "test" because they would clash with other targets ztestnet { dimension 'network' applicationId 'cash.z.android.wallet.testnet' matchingFallbacks = ['debug'] } zmainnet { dimension 'network' applicationId 'cash.z.android.wallet.mainnet' matchingFallbacks = ['release'] } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } mock { initWith debug matchingFallbacks = ['debug', 'release'] } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } lintOptions { lintConfig file("zcash-lint-options.xml") } } dependencies { // Android implementation deps.androidx.appcompat implementation deps.androidx.constraintLayout implementation deps.androidx.core implementation deps.androidx.coreKtx implementation deps.androidx.navigation.fragment implementation deps.androidx.navigation.fragmentKtx implementation deps.androidx.navigation.ui implementation deps.androidx.navigation.uiKtx implementation deps.material implementation deps.androidx.multidex // Kotlin implementation deps.kotlin.stdlib implementation deps.kotlin.reflect implementation deps.kotlin.coroutines.core implementation deps.kotlin.coroutines.android // Zcash implementation deps.zcash.walletSdk implementation project(path: ':qrecycler') // TODO: get the AAR to provide these implementation "io.grpc:grpc-okhttp:1.17.1" implementation "io.grpc:grpc-protobuf-lite:1.17.1" implementation "io.grpc:grpc-stub:1.17.1" implementation 'javax.annotation:javax.annotation-api:1.2' implementation "androidx.room:room-runtime:2.0.0" implementation "androidx.room:room-common:2.0.0" kapt "androidx.room:room-compiler:2.0.0" // Dagger implementation deps.dagger.android.support kapt deps.dagger.android.processor kapt deps.dagger.compiler // Other implementation deps.speeddial implementation deps.lottie debugImplementation deps.stetho mockImplementation deps.stetho testImplementation 'org.mockito:mockito-junit-jupiter:2.24.0' testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.1.0' testImplementation "org.junit.jupiter:junit-jupiter-api:5.4.0" testImplementation "org.junit.jupiter:junit-jupiter-engine:5.4.0" testImplementation "org.junit.jupiter:junit-jupiter-migrationsupport:5.4.0" androidTestImplementation deps.androidx.test.runner androidTestImplementation deps.androidx.test.espresso }