223 lines
7.9 KiB
Groovy
223 lines
7.9 KiB
Groovy
plugins {
|
|
id('com.android.application')
|
|
id('com.getkeepsafe.dexcount')
|
|
id('com.github.triplet.play') version '2.3.0' apply false
|
|
}
|
|
|
|
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
android {
|
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
|
|
|
defaultConfig {
|
|
minSdkVersion rootProject.ext.minSdkVersion
|
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
|
multiDexEnabled false
|
|
vectorDrawables.useSupportLibrary true
|
|
// Version code schema:
|
|
// "1.2.3-SNAPSHOT" -> 1020300
|
|
// "1.2.3-RC4" -> 1020304
|
|
// "1.2.3" -> 1020395
|
|
versionCode 1070395
|
|
versionName "1.7.3"
|
|
testApplicationId "de.test.antennapod"
|
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
generatedDensities = []
|
|
|
|
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 {
|
|
def STRING = "String"
|
|
|
|
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
|
|
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")
|
|
}
|
|
implementation "com.android.support:support-v4:$supportVersion"
|
|
implementation "com.android.support:appcompat-v7:$supportVersion"
|
|
implementation "com.android.support:design:$supportVersion"
|
|
implementation "com.android.support:preference-v14:$supportVersion"
|
|
implementation "com.android.support:gridlayout-v7:$supportVersion"
|
|
implementation "com.android.support:recyclerview-v7:$supportVersion"
|
|
compileOnly 'com.google.android.wearable:wearable:2.2.0'
|
|
|
|
// ViewModel and LiveData
|
|
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
|
|
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"
|
|
|
|
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.afollestad.material-dialogs:commons:$materialDialogsVersion") {
|
|
transitive = true
|
|
}
|
|
implementation "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion"
|
|
implementation("com.githang:viewpagerindicator:2.5.1@aar") {
|
|
exclude module: "support-v4"
|
|
}
|
|
|
|
implementation "com.github.shts:TriangleLabelView:$triangleLabelViewVersion"
|
|
implementation 'com.leinardi.android:speed-dial:1.0.2' // 1.0.2 uses support 27.1.1 ; newer versions use 28.0.0;
|
|
|
|
implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
|
|
|
|
implementation 'com.github.mfietz:fyydlin:v0.4.2'
|
|
implementation 'com.github.ByteHamster:SearchPreference:v1.3.0'
|
|
|
|
androidTestImplementation "org.awaitility:awaitility:$awaitilityVersion"
|
|
androidTestImplementation 'com.nanohttpd:nanohttpd-webserver:2.1.1'
|
|
androidTestImplementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion"
|
|
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
|
androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
|
|
androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
|
|
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
|
androidTestImplementation 'com.android.support.test:rules:1.0.2'
|
|
}
|
|
|
|
if (project.hasProperty("antennaPodServiceAccountEmail")) {
|
|
apply plugin: 'com.github.triplet.play'
|
|
play {
|
|
track = 'alpha'
|
|
serviceAccountEmail = antennaPodServiceAccountEmail
|
|
serviceAccountCredentials = file(antennaPodPk12File)
|
|
}
|
|
}
|
|
|
|
// about.html is templatized so that we can automatically insert
|
|
// our version string in to it at build time.
|
|
task filterAbout {
|
|
inputs.files files(["src/main/templates/about.html",
|
|
"src/main/AndroidManifest.xml"])
|
|
outputs.file "src/main/assets/about.html"
|
|
} doLast {
|
|
copy {
|
|
from "src/main/templates/about.html"
|
|
into "src/main/assets"
|
|
filter(ReplaceTokens, tokens: [versionname: android.defaultConfig.versionName,
|
|
commit : "git rev-parse --short HEAD".execute().text,
|
|
year : new Date().format('yyyy')])
|
|
}
|
|
}
|
|
|
|
task copyTextFiles(type: Copy) {
|
|
from "../CONTRIBUTORS"
|
|
from "../LICENSE"
|
|
into "src/main/assets/"
|
|
rename { String fileName ->
|
|
fileName + ".txt"
|
|
}
|
|
}
|
|
|
|
preBuild.dependsOn filterAbout, copyTextFiles
|
|
|