apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'jacoco' apply from: "../gradle_scripts/code_quality.gradle" android { compileSdkVersion versions.compileSdk defaultConfig { applicationId "org.moire.ultrasonic" versionCode 93 versionName "2.21.0" minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk resConfigs "cs", "de", "en", "es", "fr", "hu", "it", "nl", "pl", "pt", "pt-rBR", "ru", "zh-rCN", "zh-rTW" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'minify/proguard-main.pro', 'minify/proguard-okhttp.pro', 'minify/proguard-retrofit.pro', 'minify/proguard-jackson.pro', 'minify/proguard-kotlin-reflect.pro', 'minify/proguard-kotlin.pro' } debug { minifyEnabled false multiDexEnabled true testCoverageEnabled true applicationIdSuffix ".debug" } } sourceSets { main.java.srcDirs += "${projectDir}/src/main/kotlin" test.java.srcDirs += "${projectDir}/src/test/kotlin" } packagingOptions { exclude 'META-INF/LICENSE' } lintOptions { baselineFile file("lint-baseline.xml") ignore 'MissingTranslation' warning 'ImpliedQuantity' disable 'IconMissingDensityFolder' abortOnError true warningsAsErrors true } kotlinOptions { jvmTarget = "1.8" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } tasks.withType(Test) { useJUnitPlatform() } dependencies { implementation project(':core:domain') implementation project(':core:subsonic-api') implementation project(':core:cache') api(other.picasso) { exclude group: "com.android.support" } implementation androidSupport.core implementation androidSupport.support implementation androidSupport.design implementation androidSupport.multidex implementation androidSupport.roomRuntime implementation androidSupport.roomKtx implementation androidSupport.viewModelKtx implementation androidSupport.constraintLayout implementation androidSupport.preferences implementation androidSupport.media implementation androidSupport.navigationFragment implementation androidSupport.navigationUi implementation androidSupport.navigationFragmentKtx implementation androidSupport.navigationUiKtx implementation androidSupport.navigationFeature implementation other.kotlinStdlib implementation other.kotlinxCoroutines implementation other.koinAndroid implementation other.okhttpLogging implementation other.fastScroll implementation other.sortListView kapt androidSupport.room testImplementation other.kotlinReflect testImplementation testing.junit testRuntimeOnly testing.junitVintage testImplementation testing.kotlinJunit testImplementation testing.kluent testImplementation testing.mockito testImplementation testing.mockitoInline testImplementation testing.mockitoKotlin testImplementation testing.robolectric implementation other.dexter implementation other.timber } jacoco { toolVersion(versions.jacoco) } // Excluding all java classes and stuff that should not be covered ext { jacocoExclude = [ '**/activity/**', '**/audiofx/**', '**/fragment/**', '**/provider/**', '**/receiver/**', '**/service/**', '**/Test/**', '**/util/**', '**/view/**', '**/R$*.class', '**/R.class', '**/BuildConfig.class', '**/di/**', 'jdk.internal.*' ] } jacoco { toolVersion(versions.jacoco) } tasks.withType(Test) { jacoco.includeNoLocationClasses = true jacoco.excludes += jacocoExclude }