Podcini-podcast/app/build.gradle

182 lines
7.7 KiB
Groovy
Raw Normal View History

2024-02-05 21:50:43 +01:00
plugins {
id('com.android.application')
2024-02-14 07:09:48 +01:00
id 'kotlin-android'
id 'kotlin-kapt'
2024-02-05 21:50:43 +01:00
id('com.github.triplet.play') version '3.8.3' apply false
}
apply from: "../common.gradle"
apply from: "../playFlavor.gradle"
android {
2024-02-20 11:30:25 +01:00
namespace "ac.mdiq.podcini"
2024-02-05 21:50:43 +01:00
lint {
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', 'NotifyDataSetChanged', 'RtlEnabled'
}
defaultConfig {
// Version code schema:
// "1.2.3-beta4" -> 1020304
// "1.2.3" -> 1020395
2024-02-22 06:58:02 +01:00
versionCode 3020100
versionName "3.2.5"
2024-02-05 21:50:43 +01:00
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) + '"')
javaCompileOptions {
annotationProcessorOptions {
2024-02-20 11:30:25 +01:00
arguments = [eventBusIndex: 'ac.mdiq.podcini.ApEventBusIndex']
2024-02-05 21:50:43 +01:00
}
}
}
signingConfigs {
releaseConfig {
enableV1Signing true
enableV2Signing true
storeFile file(project.getProperties().getOrDefault("releaseStoreFile", "keystore"))
storePassword project.getProperties().getOrDefault("releaseStorePassword", "password")
keyAlias project.getProperties().getOrDefault("releaseKeyAlias", "alias")
keyPassword project.getProperties().getOrDefault("releaseKeyPassword", "password")
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
2024-02-20 11:30:25 +01:00
resValue "string", "provider_authority", "ac.mdiq.podcini.debug.provider"
2024-02-05 21:50:43 +01:00
}
release {
2024-02-20 11:30:25 +01:00
resValue "string", "provider_authority", "ac.mdiq.podcini.provider"
2024-02-05 21:50:43 +01:00
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.releaseConfig
}
}
2024-02-15 15:10:16 +01:00
applicationVariants.all { variant ->
variant.outputs.all { output ->
2024-02-20 11:30:25 +01:00
def applicationName = "Podcini"
2024-02-15 15:10:16 +01:00
outputFileName = "${applicationName}_${variant.buildType.name}_${defaultConfig.versionName}.apk"
}
}
2024-02-05 21:50:43 +01:00
androidResources {
additionalParameters "--no-version-vectors"
}
}
dependencies {
2024-02-14 07:09:48 +01:00
implementation "androidx.core:core-ktx:$coreVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
constraints {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version") {
because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
}
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version") {
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
}
}
2024-02-05 21:50:43 +01:00
implementation project(":core")
implementation project(":event")
implementation project(':model')
implementation project(':net:common')
implementation project(':net:discovery')
implementation project(':net:download:service-interface')
implementation project(':net:sync:gpoddernet')
implementation project(':net:sync:model')
implementation project(':parser:feed')
implementation project(':playback:base')
implementation project(':playback:cast')
implementation project(':storage:database')
implementation project(':storage:preferences')
implementation project(':ui:app-start-intent')
implementation project(':ui:common')
implementation project(':ui:echo')
implementation project(':ui:glide')
implementation project(':ui:i18n')
implementation project(':ui:statistics')
2024-02-14 07:09:48 +01:00
kapt "androidx.annotation:annotation:1.7.1"
2024-02-05 21:50:43 +01:00
implementation "androidx.appcompat:appcompat:1.6.1"
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
2024-02-14 07:09:48 +01:00
implementation "androidx.core:core-ktx:$coreVersion"
implementation "androidx.fragment:fragment-ktx:$fragmentVersion"
2024-02-05 21:50:43 +01:00
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation "androidx.media:media:$mediaVersion"
2024-02-14 07:09:48 +01:00
implementation "androidx.media3:media3-common:$media3Version"
implementation "androidx.palette:palette-ktx:$paletteVersion"
implementation "androidx.preference:preference-ktx:$preferenceVersion"
2024-02-05 21:50:43 +01:00
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"
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"
2024-02-14 07:09:48 +01:00
kapt "org.greenrobot:eventbus-annotation-processor:$eventbusVersion"
2024-02-05 21:50:43 +01:00
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.leinardi.android:speed-dial:3.2.0'
implementation 'com.github.ByteHamster:SearchPreference:v2.5.0'
implementation 'com.github.skydoves:balloon:1.5.3'
implementation 'com.github.xabaras:RecyclerViewSwipeDecorator:1.3'
implementation "com.annimon:stream:$annimonStreamVersion"
// Non-free dependencies:
2024-02-14 07:09:48 +01:00
playImplementation 'com.google.android.play:core-ktx:1.8.0'
2024-02-05 21:50:43 +01:00
compileOnly "com.google.android.wearable:wearable:$wearableSupportVersion"
androidTestImplementation "org.awaitility:awaitility:$awaitilityVersion"
androidTestImplementation 'com.nanohttpd:nanohttpd:2.1.1'
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"
2024-02-14 07:09:48 +01:00
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
2024-02-05 21:50:43 +01:00
}
2024-02-20 11:30:25 +01:00
if (project.hasProperty("podciniPlayPublisherCredentials")) {
2024-02-05 21:50:43 +01:00
apply plugin: 'com.github.triplet.play'
play {
track.set('alpha')
2024-02-20 11:30:25 +01:00
serviceAccountCredentials.set(file(podciniPlayPublisherCredentials))
2024-02-05 21:50:43 +01:00
}
}
2024-02-14 07:09:48 +01:00
tasks.register('copyLicense', Copy) {
2024-02-05 21:50:43 +01:00
from "../LICENSE"
into "src/main/assets/"
rename { String fileName ->
fileName + ".txt"
}
}
preBuild.dependsOn copyLicense