plugins { id('com.android.application') id('com.getkeepsafe.dexcount') id('com.github.triplet.play') version '2.7.5' apply false } android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion // Version code schema: // "1.2.3-SNAPSHOT" -> 1020300 // "1.2.3-RC4" -> 1020304 // "1.2.3" -> 1020395 versionCode 2000095 versionName "2.0.0" multiDexEnabled false vectorDrawables.useSupportLibrary true vectorDrawables.generatedDensities = [] testApplicationId "de.test.antennapod" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" def commit = "Unknown commit" try { commit = "git rev-parse --short HEAD".execute().text.trim() } catch (Exception ignore) { } buildConfigField "String", "COMMIT_HASH", ('"' + commit + '"') javaCompileOptions { annotationProcessorOptions { arguments = [eventBusIndex: 'de.danoeh.antennapod.ApEventBusIndex'] } } } signingConfigs { releaseConfig { if (project.hasProperty("releaseStoreFile")) { storeFile file(releaseStoreFile) } else { storeFile file("keystore") } if (project.hasProperty("releaseStorePassword")) { storePassword releaseStorePassword } else { storePassword "password" } if (project.hasProperty("releaseKeyAlias")) { keyAlias releaseKeyAlias } else { keyAlias "alias" } if (project.hasProperty("releaseKeyPassword")) { keyPassword releaseKeyPassword } else { keyPassword "password" } } } buildTypes { debug { applicationIdSuffix ".debug" resValue "string", "provider_authority", "de.danoeh.antennapod.debug.provider" // 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 dexcount { if (project.hasProperty("enableDexcountInDebug")) { runOnEachPackage enableDexcountInDebug.toBoolean() } else { // default to not running dexcount runOnEachPackage false } } } release { resValue "string", "provider_authority", "de.danoeh.antennapod.provider" minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard.cfg" signingConfig signingConfigs.releaseConfig } } packagingOptions { exclude "META-INF/LICENSE.txt" exclude "META-INF/NOTICE.txt" } lintOptions { abortOnError false } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } aaptOptions { additionalParameters "--no-version-vectors" } testOptions { animationsDisabled = true } flavorDimensions "market" productFlavors { free { dimension "market" } play { dimension "market" } } dexOptions { jumboMode true } } dependencies { freeImplementation project(":core") // free build hack: skip some dependencies if (!doFreeBuild()) { playImplementation project(":core") } else { System.out.println("app: free build hack, skipping some dependencies") } annotationProcessor "androidx.annotation:annotation:$annotationVersion" implementation "androidx.appcompat:appcompat:$appcompatVersion" implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0' implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation "androidx.media:media:$mediaVersion" implementation "androidx.preference:preference:$preferenceVersion" implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01' 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.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.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion" implementation "com.joanzapata.iconify:android-iconify-material:$iconifyVersion" implementation 'com.yqritc:recyclerview-flexibledivider:1.4.0' implementation 'com.github.shts:TriangleLabelView:1.1.2' implementation 'com.leinardi.android:speed-dial:3.1.1' implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion" implementation 'com.github.mfietz:fyydlin:v0.5.0' implementation 'com.github.ByteHamster:SearchPreference:v2.0.0' implementation 'com.github.skydoves:balloon:1.1.5' compileOnly "com.google.android.wearable:wearable:$wearableSupportVersion" androidTestImplementation "org.awaitility:awaitility:$awaitilityVersion" androidTestImplementation 'com.nanohttpd:nanohttpd:2.1.1' androidTestImplementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion" androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" androidTestImplementation "androidx.test:runner:$runnerVersion" androidTestImplementation "androidx.test:rules:$rulesVersion" } if (project.hasProperty("antennaPodPlayPublisherCredentials")) { apply plugin: 'com.github.triplet.play' play { track = 'alpha' serviceAccountCredentials = file(antennaPodPlayPublisherCredentials) } } task copyLicense(type: Copy) { from "../LICENSE" into "src/main/assets/" rename { String fileName -> fileName + ".txt" } outputs.upToDateWhen { false } } preBuild.dependsOn copyLicense apply plugin: 'de.timfreiheit.resourceplaceholders.plugin' resourcePlaceholders { files = ['xml/shortcuts.xml'] }