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
|