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 88 versionName "2.18.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") warning 'MissingTranslation' abortOnError true } kotlinOptions { jvmTarget = "1.8" } } tasks.withType(Test) { useJUnitPlatform() } dependencies { implementation project(':core:library') implementation project(':core:domain') implementation project(':core:subsonic-api') implementation project(':core:subsonic-api-image-loader') implementation project(':core:cache') 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.navigationFragment implementation androidSupport.navigationUi implementation androidSupport.navigationFragmentKtx implementation androidSupport.navigationUiKtx implementation androidSupport.navigationFeature implementation other.kotlinStdlib implementation other.kotlinxCoroutines implementation other.koinAndroid implementation other.koinViewModel implementation other.okhttpLogging implementation other.fastScroll kapt androidSupport.room testImplementation other.kotlinReflect testImplementation testing.junit testRuntimeOnly testing.junitVintage testImplementation testing.kotlinJunit testImplementation testing.mockitoKotlin testImplementation testing.kluent 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 }