apply plugin: "com.android.library" android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled false testApplicationId "de.danoeh.antennapod.core.tests" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { arguments = [eventBusIndex: 'de.danoeh.antennapod.core.ApCoreEventBusIndex'] } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } debug { // debug build has method count over 64k single-dex threshold. // For building debug build to use on Android < 21 (pre-Android 5) devices, // you need to manually change class // de.danoeh.antennapod.PodcastApp to extend MultiDexApplication . // See Issue #2813 multiDexEnabled true } } packagingOptions { exclude "META-INF/LICENSE.txt" exclude "META-INF/NOTICE.txt" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } flavorDimensions "market" productFlavors { free { dimension "market" } play { dimension "market" } } testOptions { unitTests { includeAndroidResources = true } } lintOptions { disable "InvalidPeriodicWorkRequestInterval", "ObsoleteLintCustomCheck", "DefaultLocale", "UnusedAttribute", "GradleDependency", "ParcelClassLoader", "Typos", "ExtraTranslation", "ImpliedQuantity", "PluralsCandidate", "UnusedQuantity", "StringFormatCount", "TrustAllX509TrustManager", "StaticFieldLeak", "TypographyEllipsis", "IconDensities", "IconDuplicates", "CheckResult" warningsAsErrors true abortOnError true } } dependencies { annotationProcessor "androidx.annotation:annotation:$annotationVersion" implementation "androidx.appcompat:appcompat:$appcompatVersion" implementation 'androidx.documentfile:documentfile:1.0.1' implementation "androidx.media:media:$mediaVersion" implementation "androidx.preference:preference:$preferenceVersion" implementation "androidx.work:work-runtime:$workManagerVersion" implementation "com.google.android.material:material:$googleMaterialVersion" implementation "org.apache.commons:commons-lang3:$commonslangVersion" implementation "commons-io:commons-io:$commonsioVersion" implementation "org.jsoup:jsoup:$jsoupVersion" implementation "com.github.bumptech.glide:glide:$glideVersion" annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion" implementation "com.github.bumptech.glide:okhttp3-integration:$glideVersion@aar" implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion" implementation "com.squareup.okio:okio:$okioVersion" implementation "org.greenrobot:eventbus:$eventbusVersion" annotationProcessor "org.greenrobot:eventbus-annotation-processor:$eventbusVersion" implementation "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion" implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion" implementation 'com.google.android.exoplayer:exoplayer:2.11.8' implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion" // Add casting features // free build hack: skip some dependencies if (!doFreeBuild()) { playApi 'com.google.android.libraries.cast.companionlibrary:ccl:2.9.1' api 'androidx.mediarouter:mediarouter:1.0.0' playApi 'com.google.android.gms:play-services-cast:8.4.0' api "com.google.android.support:wearable:$wearableSupportVersion" compileOnly "com.google.android.wearable:wearable:$wearableSupportVersion" } else { System.out.println("core: free build hack, skipping some dependencies") } // bundle conscrypt with free builds freeImplementation "org.conscrypt:conscrypt-android:$conscryptVersion" testImplementation "org.awaitility:awaitility:$awaitilityVersion" testImplementation 'junit:junit:4.13' testImplementation 'org.mockito:mockito-inline:3.5.13' testImplementation 'org.robolectric:robolectric:4.5-alpha-1' testImplementation 'javax.inject:javax.inject:1' androidTestImplementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion" androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test:runner:$runnerVersion" androidTestImplementation "androidx.test:rules:$rulesVersion" } tasks.withType(Test) { testLogging { exceptionFormat "full" events "skipped", "passed", "failed" showStandardStreams true displayGranularity 2 } }