AntennaPod/app/build.gradle
ByteHamster 42e36328e3
Merge pull request #5756 from ByteHamster/multidex-androidx
Use AndroidX version of MultiDex
2022-02-27 11:09:57 +01:00

202 lines
8.1 KiB
Groovy

plugins {
id('com.android.application')
id('com.getkeepsafe.dexcount')
id('com.github.triplet.play') version '3.7.0-agp4.2' apply false
}
apply from: "../common.gradle"
apply from: "../playFlavor.gradle"
android {
defaultConfig {
// Version code schema:
// "1.2.3-beta4" -> 1020304
// "1.2.3" -> 1020395
versionCode 2050003
versionName "2.5.0-beta3"
def commit = ""
try {
def hashStdOut = new ByteArrayOutputStream()
exec {
commandLine "git", "rev-parse", "--short", "HEAD"
standardOutput = hashStdOut
}
commit = hashStdOut.toString().trim()
} catch (Exception ignore) {
}
buildConfigField "String", "COMMIT_HASH", ('"' + (commit.isEmpty() ? "Unknown commit" : commit) + '"')
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"'
}
javaCompileOptions {
annotationProcessorOptions {
arguments = [eventBusIndex: 'de.danoeh.antennapod.ApEventBusIndex']
}
}
}
signingConfigs {
releaseConfig {
enableV1Signing true
enableV2Signing true
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"
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
signingConfig signingConfigs.releaseConfig
}
}
lintOptions {
disable 'ObsoleteLintCustomCheck', 'CheckResult', 'UnusedAttribute', 'BatteryLife', 'InflateParams',
'RestrictedApi', 'TrustAllX509TrustManager', 'ExportedReceiver', 'AllowBackup', 'VectorDrawableCompat',
'StaticFieldLeak', 'UseCompoundDrawables', 'NestedWeights', 'Overdraw', 'UselessParent', 'TextFields',
'AlwaysShowAction', 'Autofill', 'ClickableViewAccessibility', 'ContentDescription',
'KeyboardInaccessibleWidget', 'LabelFor', 'SetTextI18n', 'HardcodedText', 'RelativeOverlap',
'RtlCompat', 'RtlHardcoded', 'MissingMediaBrowserServiceIntentFilter', 'VectorPath',
'InvalidPeriodicWorkRequestInterval'
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
dexOptions {
jumboMode true
}
}
dependencies {
implementation project(":core")
implementation project(":event")
implementation project(':model')
implementation project(':net:sync:gpoddernet')
implementation project(':net:sync:model')
implementation project(':parser:feed')
implementation project(':playback:base')
implementation project(':playback:cast')
implementation project(':ui:app-start-intent')
implementation project(':ui:common')
implementation project(':ui:i18n')
implementation project(':ui:statistics')
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
implementation "androidx.core:core:$coreVersion"
implementation "androidx.fragment:fragment:$fragmentVersion"
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation "androidx.media:media:$mediaVersion"
implementation 'androidx.multidex:multidex:2.0.1'
implementation "androidx.palette:palette:$paletteVersion"
implementation "androidx.preference:preference:$preferenceVersion"
implementation "androidx.recyclerview:recyclerview:$recyclerViewVersion"
implementation "androidx.viewpager2:viewpager2:$viewPager2Version"
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.github.shts:TriangleLabelView:1.1.2'
implementation 'com.leinardi.android:speed-dial:3.2.0'
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.4.0'
implementation 'com.github.xabaras:RecyclerViewSwipeDecorator:1.3'
implementation 'com.annimon:stream:1.2.2'
// Non-free dependencies:
playImplementation 'com.google.android.play:core:1.8.0'
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"
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
}
if (project.hasProperty("antennaPodPlayPublisherCredentials")) {
apply plugin: 'com.github.triplet.play'
play {
track.set('alpha')
serviceAccountCredentials.set(file(antennaPodPlayPublisherCredentials))
}
}
task copyLicense(type: Copy) {
from "../LICENSE"
into "src/main/assets/"
rename { String fileName ->
fileName + ".txt"
}
}
preBuild.dependsOn copyLicense
apply plugin: 'de.timfreiheit.resourceplaceholders.plugin'
resourcePlaceholders {
files = ['xml/shortcuts.xml']
}