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 3030095
        versionName "3.3.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 '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'
    }

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

dependencies {
    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:download:service')
    implementation project(':net:ssl')
    implementation project(':net:sync:service')
    implementation project(':net:sync:model')
    implementation project(':parser:feed')
    implementation project(':playback:base')
    implementation project(':playback:cast')
    implementation project(':storage:database')
    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')

    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 "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.rxjava2:rxandroid:$rxAndroidVersion"
    implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion"

    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'

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