plugins {
    id('com.android.application')
    id('com.github.triplet.play') version '3.9.0' apply false
}
apply from: "../common.gradle"
apply from: "../playFlavor.gradle"

android {
    namespace "de.danoeh.antennapod"

    defaultConfig {
        // Version code schema:
        // "1.2.3-beta4"    -> 1020304
        // "1.2.3"          -> 1020395
        versionCode 3090095
        versionName "3.9.0"

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = [eventBusIndex: 'de.danoeh.antennapod.ApEventBusIndex']
            }
        }
    }

    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"
            resValue "string", "provider_authority", "de.danoeh.antennapod.debug.provider"
        }
        release {
            resValue "string", "provider_authority", "de.danoeh.antennapod.provider"
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.releaseConfig
        }
    }

    lint {
        disable 'CheckResult', 'MissingMediaBrowserServiceIntentFilter', 'UnusedAttribute', 'InflateParams',
                'RestrictedApi', 'ExportedReceiver', 'NotifyDataSetChanged', 'UseCompoundDrawables', 'NestedWeights',
                'Overdraw', 'UselessParent', 'TextFields', 'AlwaysShowAction', 'Autofill', 'ClickableViewAccessibility',
                'KeyboardInaccessibleWidget', 'LabelFor', 'SetTextI18n', 'HardcodedText', 'RelativeOverlap',
                'RtlHardcoded', 'RtlEnabled', 'ContentDescription'
    }

    androidResources {
        additionalParameters += ["--no-version-vectors"]
    }
}

dependencies {
    implementation project(":event")
    implementation project(':model')
    implementation project(':net:common')
    implementation project(':net:discovery')
    implementation project(':net:download:service-interface')
    implementation project(':net:download:service')
    implementation project(':net:ssl')
    implementation project(':net:sync:service')
    implementation project(':parser:feed')
    implementation project(':parser:transcript')
    implementation project(':playback:base')
    implementation project(':playback:cast')
    implementation project(':storage:database')
    implementation project(':storage:database-maintenance-service')
    implementation project(':storage:importexport')
    implementation project(':storage:preferences')
    implementation project(':ui:app-start-intent')
    implementation project(':ui:common')
    implementation project(':ui:discovery')
    implementation project(':ui:echo')
    implementation project(':ui:episodes')
    implementation project(':ui:glide')
    implementation project(':ui:i18n')
    implementation project(':ui:notifications')
    implementation project(':ui:widget')
    implementation project(':ui:preferences')
    implementation project(':ui:statistics')
    implementation project(':net:sync:service-interface')
    implementation project(':playback:service')
    implementation project(':ui:chapters')
    implementation project(':ui:transcript')

    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.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 "androidx.drawerlayout:drawerlayout:1.2.0"

    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 "org.greenrobot:eventbus:$eventbusVersion"
    annotationProcessor "org.greenrobot:eventbus-annotation-processor:$eventbusVersion"
    implementation "io.reactivex.rxjava3:rxandroid:$rxAndroidVersion"
    implementation "io.reactivex.rxjava3:rxjava:$rxJavaVersion"

    implementation 'com.github.ByteHamster:SearchPreference:v2.5.0'
    implementation 'com.github.skydoves:balloon:1.5.3'
    implementation 'com.github.xabaras:RecyclerViewSwipeDecorator:1.3'

    testImplementation "androidx.test:core:$testCoreVersion"
    testImplementation "junit:junit:$junitVersion"
    testImplementation "org.robolectric:robolectric:$robolectricVersion"

    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"
    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))
    }
}
