2019-01-17 19:18:29 +01:00
|
|
|
plugins {
|
2019-08-20 22:17:56 +02:00
|
|
|
id('com.android.application')
|
|
|
|
id('com.getkeepsafe.dexcount')
|
2020-05-04 17:00:46 +02:00
|
|
|
id('com.github.triplet.play') version '2.7.5' apply false
|
2015-05-03 16:29:18 +02:00
|
|
|
}
|
|
|
|
|
2014-09-17 20:51:45 +02:00
|
|
|
android {
|
2015-11-01 17:48:33 +01:00
|
|
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
2014-09-17 20:51:45 +02:00
|
|
|
|
2020-10-28 09:53:58 +01:00
|
|
|
viewBinding {
|
|
|
|
enabled = true
|
|
|
|
}
|
|
|
|
|
|
|
|
lintOptions {
|
|
|
|
checkGeneratedSources = true
|
|
|
|
}
|
|
|
|
|
2014-09-17 20:51:45 +02:00
|
|
|
defaultConfig {
|
2015-11-01 17:48:33 +01:00
|
|
|
minSdkVersion rootProject.ext.minSdkVersion
|
|
|
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
2019-01-27 10:55:08 +01:00
|
|
|
// Version code schema:
|
|
|
|
// "1.2.3-SNAPSHOT" -> 1020300
|
|
|
|
// "1.2.3-RC4" -> 1020304
|
2019-05-12 18:25:15 +02:00
|
|
|
// "1.2.3" -> 1020395
|
2020-12-13 10:29:25 +01:00
|
|
|
versionCode 2010195
|
|
|
|
versionName "2.1.1"
|
2020-05-07 17:38:01 +02:00
|
|
|
|
|
|
|
multiDexEnabled false
|
|
|
|
vectorDrawables.useSupportLibrary true
|
|
|
|
vectorDrawables.generatedDensities = []
|
|
|
|
|
2014-09-17 20:51:45 +02:00
|
|
|
testApplicationId "de.test.antennapod"
|
2019-10-04 11:22:39 +02:00
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
2019-05-28 17:26:09 +02:00
|
|
|
|
2019-11-09 00:06:32 +01:00
|
|
|
def commit = "Unknown commit"
|
|
|
|
try {
|
|
|
|
commit = "git rev-parse --short HEAD".execute().text.trim()
|
2020-04-26 03:03:16 +02:00
|
|
|
} catch (Exception ignore) {
|
|
|
|
}
|
2019-11-09 00:06:32 +01:00
|
|
|
buildConfigField "String", "COMMIT_HASH", ('"' + commit + '"')
|
2020-10-01 09:50:41 +02:00
|
|
|
|
|
|
|
if (project.hasProperty("podcastindexApiKey")) {
|
|
|
|
buildConfigField "String", "PODCASTINDEX_API_KEY", '"' + podcastindexApiKey + '"'
|
|
|
|
buildConfigField "String", "PODCASTINDEX_API_SECRET", '"' + podcastindexApiSecret + '"'
|
|
|
|
} else {
|
|
|
|
buildConfigField "String", "PODCASTINDEX_API_KEY", '"XTMMQGA2YZ4WJUBYY4HK"'
|
|
|
|
buildConfigField "String", "PODCASTINDEX_API_SECRET", '"XAaAhk4^2YBsTE33vdbwbZNj82ZRLABDDqFdKe7x"'
|
|
|
|
}
|
2019-11-09 00:06:32 +01:00
|
|
|
|
2019-05-28 17:26:09 +02:00
|
|
|
javaCompileOptions {
|
|
|
|
annotationProcessorOptions {
|
2020-04-26 03:03:16 +02:00
|
|
|
arguments = [eventBusIndex: 'de.danoeh.antennapod.ApEventBusIndex']
|
2019-05-28 17:26:09 +02:00
|
|
|
}
|
|
|
|
}
|
2014-09-17 20:51:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
signingConfigs {
|
|
|
|
releaseConfig {
|
2020-09-28 11:08:41 +02:00
|
|
|
v1SigningEnabled true
|
|
|
|
v2SigningEnabled true
|
|
|
|
|
2015-11-01 17:48:33 +01:00
|
|
|
if (project.hasProperty("releaseStoreFile")) {
|
2014-09-17 20:51:45 +02:00
|
|
|
storeFile file(releaseStoreFile)
|
|
|
|
} else {
|
2015-11-01 17:48:33 +01:00
|
|
|
storeFile file("keystore")
|
2014-09-17 20:51:45 +02:00
|
|
|
}
|
2015-11-01 17:48:33 +01:00
|
|
|
if (project.hasProperty("releaseStorePassword")) {
|
2014-09-17 20:51:45 +02:00
|
|
|
storePassword releaseStorePassword
|
|
|
|
} else {
|
|
|
|
storePassword "password"
|
|
|
|
}
|
2015-11-01 17:48:33 +01:00
|
|
|
if (project.hasProperty("releaseKeyAlias")) {
|
2014-09-17 20:51:45 +02:00
|
|
|
keyAlias releaseKeyAlias
|
|
|
|
} else {
|
|
|
|
keyAlias "alias"
|
|
|
|
}
|
2015-11-01 17:48:33 +01:00
|
|
|
if (project.hasProperty("releaseKeyPassword")) {
|
2014-09-17 20:51:45 +02:00
|
|
|
keyPassword releaseKeyPassword
|
|
|
|
} else {
|
|
|
|
keyPassword "password"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
debug {
|
|
|
|
applicationIdSuffix ".debug"
|
2017-10-21 23:53:50 +02:00
|
|
|
resValue "string", "provider_authority", "de.danoeh.antennapod.debug.provider"
|
2019-08-11 14:57:44 +02:00
|
|
|
|
2020-05-07 17:38:01 +02:00
|
|
|
// debug build has method count over 64k single-dex threshold.
|
|
|
|
// For building debug build to use on Android < 21 (pre-Android 5) devices,
|
2019-01-03 22:56:40 +01:00
|
|
|
// you need to manually change class
|
2020-05-07 17:38:01 +02:00
|
|
|
// de.danoeh.antennapod.PodcastApp to extend MultiDexApplication .
|
2019-01-03 22:56:40 +01:00
|
|
|
// See Issue #2813
|
|
|
|
multiDexEnabled true
|
2020-04-26 03:03:16 +02:00
|
|
|
|
2018-05-03 23:00:48 +02:00
|
|
|
dexcount {
|
|
|
|
if (project.hasProperty("enableDexcountInDebug")) {
|
|
|
|
runOnEachPackage enableDexcountInDebug.toBoolean()
|
2018-05-14 00:07:07 +02:00
|
|
|
} else { // default to not running dexcount
|
2020-04-26 03:03:16 +02:00
|
|
|
runOnEachPackage false
|
2018-05-14 00:07:07 +02:00
|
|
|
}
|
2018-05-03 23:00:48 +02:00
|
|
|
}
|
2014-09-17 20:51:45 +02:00
|
|
|
}
|
|
|
|
release {
|
2017-10-28 22:17:26 +02:00
|
|
|
resValue "string", "provider_authority", "de.danoeh.antennapod.provider"
|
2014-11-05 20:40:24 +01:00
|
|
|
minifyEnabled true
|
2020-04-10 00:03:53 +02:00
|
|
|
shrinkResources true
|
2019-01-06 00:23:34 +01:00
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard.cfg"
|
2014-09-17 20:51:45 +02:00
|
|
|
signingConfig signingConfigs.releaseConfig
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
packagingOptions {
|
2015-11-01 17:48:33 +01:00
|
|
|
exclude "META-INF/LICENSE.txt"
|
|
|
|
exclude "META-INF/NOTICE.txt"
|
2014-09-17 20:51:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
lintOptions {
|
2020-07-16 11:36:37 +02:00
|
|
|
disable 'ObsoleteLintCustomCheck', 'CheckResult', 'UnusedAttribute', 'BatteryLife', 'InflateParams',
|
|
|
|
'GradleDependency', 'RestrictedApi', 'TrustAllX509TrustManager', 'ExportedReceiver', 'AllowBackup',
|
|
|
|
'StaticFieldLeak', 'UseCompoundDrawables', 'NestedWeights', 'Overdraw', 'UselessParent', 'TextFields',
|
|
|
|
'AlwaysShowAction', 'Autofill', 'ClickableViewAccessibility', 'ContentDescription',
|
|
|
|
'KeyboardInaccessibleWidget', 'LabelFor', 'SetTextI18n', 'HardcodedText', 'RelativeOverlap',
|
|
|
|
'RtlCompat', 'RtlHardcoded', 'MissingMediaBrowserServiceIntentFilter'
|
|
|
|
warningsAsErrors true
|
|
|
|
abortOnError true
|
2014-09-17 20:51:45 +02:00
|
|
|
}
|
2015-08-18 17:38:51 +02:00
|
|
|
|
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
|
|
}
|
2016-03-25 15:50:41 +01:00
|
|
|
|
|
|
|
aaptOptions {
|
|
|
|
additionalParameters "--no-version-vectors"
|
|
|
|
}
|
2016-06-04 01:36:25 +02:00
|
|
|
|
2018-10-21 22:12:07 +02:00
|
|
|
testOptions {
|
|
|
|
animationsDisabled = true
|
|
|
|
}
|
|
|
|
|
2018-03-13 17:51:50 +01:00
|
|
|
flavorDimensions "market"
|
2016-06-04 01:36:25 +02:00
|
|
|
productFlavors {
|
|
|
|
free {
|
2018-03-13 17:51:50 +01:00
|
|
|
dimension "market"
|
2016-06-04 01:36:25 +02:00
|
|
|
}
|
|
|
|
play {
|
2018-03-13 17:51:50 +01:00
|
|
|
dimension "market"
|
2016-06-04 01:36:25 +02:00
|
|
|
}
|
|
|
|
}
|
2016-12-31 16:01:48 +01:00
|
|
|
|
|
|
|
dexOptions {
|
|
|
|
jumboMode true
|
|
|
|
}
|
2016-06-04 01:36:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2018-03-13 19:34:29 +01:00
|
|
|
freeImplementation project(":core")
|
2016-06-08 20:11:26 +02:00
|
|
|
// free build hack: skip some dependencies
|
|
|
|
if (!doFreeBuild()) {
|
2018-03-13 19:34:29 +01:00
|
|
|
playImplementation project(":core")
|
2020-10-10 22:07:26 +02:00
|
|
|
implementation 'com.google.android.play:core:1.8.0'
|
2016-06-08 20:11:26 +02:00
|
|
|
} else {
|
|
|
|
System.out.println("app: free build hack, skipping some dependencies")
|
|
|
|
}
|
2020-04-26 03:03:16 +02:00
|
|
|
|
2020-05-07 17:38:01 +02:00
|
|
|
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
|
|
|
|
implementation "androidx.appcompat:appcompat:$appcompatVersion"
|
2020-04-26 03:03:16 +02:00
|
|
|
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
|
|
|
|
implementation 'androidx.gridlayout:gridlayout:1.0.0'
|
2020-05-07 17:38:01 +02:00
|
|
|
implementation "androidx.media:media:$mediaVersion"
|
|
|
|
implementation "androidx.preference:preference:$preferenceVersion"
|
2020-04-26 03:03:16 +02:00
|
|
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
2020-05-08 22:50:13 +02:00
|
|
|
implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
|
2020-04-10 12:28:59 +02:00
|
|
|
implementation "androidx.work:work-runtime:$workManagerVersion"
|
2020-05-07 17:38:01 +02:00
|
|
|
implementation "com.google.android.material:material:$googleMaterialVersion"
|
2020-04-26 03:03:16 +02:00
|
|
|
|
2018-03-13 19:34:29 +01:00
|
|
|
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"
|
2019-01-03 18:43:19 +01:00
|
|
|
annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
|
2018-03-13 19:34:29 +01:00
|
|
|
implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
|
|
|
|
implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
|
|
|
|
implementation "com.squareup.okio:okio:$okioVersion"
|
2019-04-12 11:28:29 +02:00
|
|
|
implementation "org.greenrobot:eventbus:$eventbusVersion"
|
2019-05-28 17:26:09 +02:00
|
|
|
annotationProcessor "org.greenrobot:eventbus-annotation-processor:$eventbusVersion"
|
2018-09-30 19:58:53 +02:00
|
|
|
implementation "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion"
|
|
|
|
implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion"
|
|
|
|
|
2018-03-13 19:34:29 +01:00
|
|
|
implementation "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion"
|
|
|
|
implementation "com.joanzapata.iconify:android-iconify-material:$iconifyVersion"
|
2020-05-07 17:38:01 +02:00
|
|
|
implementation 'com.yqritc:recyclerview-flexibledivider:1.4.0'
|
|
|
|
implementation 'com.github.shts:TriangleLabelView:1.1.2'
|
2020-04-26 03:03:16 +02:00
|
|
|
implementation 'com.leinardi.android:speed-dial:3.1.1'
|
2018-03-13 19:34:29 +01:00
|
|
|
implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
|
2020-03-18 00:11:52 +01:00
|
|
|
implementation 'com.github.mfietz:fyydlin:v0.5.0'
|
2019-10-13 23:32:25 +02:00
|
|
|
implementation 'com.github.ByteHamster:SearchPreference:v2.0.0'
|
2020-05-07 17:38:01 +02:00
|
|
|
implementation 'com.github.skydoves:balloon:1.1.5'
|
|
|
|
|
|
|
|
compileOnly "com.google.android.wearable:wearable:$wearableSupportVersion"
|
2018-03-13 19:34:29 +01:00
|
|
|
|
2019-09-24 20:35:01 +02:00
|
|
|
androidTestImplementation "org.awaitility:awaitility:$awaitilityVersion"
|
2020-04-26 03:03:16 +02:00
|
|
|
androidTestImplementation 'com.nanohttpd:nanohttpd:2.1.1'
|
2018-03-13 19:34:29 +01:00
|
|
|
androidTestImplementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion"
|
2019-09-29 13:24:11 +02:00
|
|
|
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
|
|
|
|
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
|
|
|
|
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
|
2020-05-07 17:38:01 +02:00
|
|
|
androidTestImplementation "androidx.test:runner:$runnerVersion"
|
|
|
|
androidTestImplementation "androidx.test:rules:$rulesVersion"
|
2020-07-13 06:49:35 +02:00
|
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
2015-05-03 16:29:18 +02:00
|
|
|
}
|
|
|
|
|
2020-05-04 21:14:34 +02:00
|
|
|
if (project.hasProperty("antennaPodPlayPublisherCredentials")) {
|
2019-08-20 22:17:56 +02:00
|
|
|
apply plugin: 'com.github.triplet.play'
|
|
|
|
play {
|
|
|
|
track = 'alpha'
|
2020-05-04 21:14:34 +02:00
|
|
|
serviceAccountCredentials = file(antennaPodPlayPublisherCredentials)
|
2019-01-16 23:15:34 +01:00
|
|
|
}
|
2016-05-10 20:23:01 +02:00
|
|
|
}
|
|
|
|
|
2019-11-09 01:07:13 +01:00
|
|
|
task copyLicense(type: Copy) {
|
2015-11-08 13:27:43 +01:00
|
|
|
from "../LICENSE"
|
|
|
|
into "src/main/assets/"
|
|
|
|
rename { String fileName ->
|
|
|
|
fileName + ".txt"
|
2015-05-03 16:29:18 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-11-09 01:07:13 +01:00
|
|
|
preBuild.dependsOn copyLicense
|
2016-05-16 08:42:43 +02:00
|
|
|
|
2020-03-30 00:39:52 +02:00
|
|
|
apply plugin: 'de.timfreiheit.resourceplaceholders.plugin'
|
|
|
|
resourcePlaceholders {
|
|
|
|
files = ['xml/shortcuts.xml']
|
|
|
|
}
|