// 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.zcon1" minSdkVersion buildConfig.minSdkVersion targetSdkVersion buildConfig.targetSdkVersion versionCode 20 // 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.6.1-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 zcashtestnet { dimension 'network' applicationId 'cash.z.android.zcon1.testnet' matchingFallbacks = ['debug', 'zcashtestnet'] } zcashmainnet { dimension 'network' applicationId 'cash.z.android.zcon1.mainnet' matchingFallbacks = ['release', 'zcashmainnet'] } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } mock { initWith debug matchingFallbacks = ['debug', 'release', 'zcashtestnet'] } } 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.19.0" implementation "io.grpc:grpc-protobuf-lite:1.19.0" implementation "io.grpc:grpc-stub:1.19.0" implementation 'javax.annotation:javax.annotation-api:1.3.2' implementation "androidx.room:room-runtime:2.1.0-alpha06" implementation "androidx.room:room-common:2.1.0-alpha06" implementation 'com.google.guava:guava:27.0.1-android' kapt "androidx.room:room-compiler:2.1.0-alpha06" // 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 deps.mockito.jupiter testImplementation deps.mockito.kotlin testImplementation deps.junit5.api testImplementation deps.junit5.engine testImplementation deps.junit5.migrationsupport androidTestImplementation deps.androidx.test.runner androidTestImplementation deps.androidx.test.espresso }