apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'


repositories {
    // for security issues fixed version of iText 2 from JasperReports
    maven {
        url "http://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts"
    }
}


android {
    compileSdkVersion androidCompileSdkVersion
    buildToolsVersion androidBuildToolsVersion


    defaultConfig {
        applicationId "net.dankito.banking.android"

        minSdkVersion androidMinSdkVersion
        targetSdkVersion androidTargetSdkVersion

        versionName version
        versionCode appVersionCode

        multiDexEnabled true

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    signingConfigs {
        debug {
            // so that all machines have the same signing key, no matter if app is installed from developer's machine or from Jenkins
            storeFile file('debug-keystore.jks')
            storePassword 'find_my_bugs_before_releasing_me'
            keyAlias 'DebugKey'
            keyPassword 'find_my_bugs_before_releasing_me'
        }
    }

    packagingOptions {
        pickFirst 'META-INF/kotlinx-coroutines-io.kotlin_module'
        pickFirst 'META-INF/kotlinx-io.kotlin_module'
        pickFirst 'META-INF/kotlinx-serialization-runtime.kotlin_module'
        pickFirst 'META-INF/ktor-utils.kotlin_module'
        pickFirst 'META-INF/ktor-client-core.kotlin_module'
        pickFirst 'META-INF/ktor-http.kotlin_module'
        pickFirst 'META-INF/ktor-io.kotlin_module'
        pickFirst 'META-INF/ktor-http-cio.kotlin_module'
        pickFirst 'META-INF/atomicfu.kotlin_module'

        pickFirst 'META-INF/DEPENDENCIES'
        pickFirst 'META-INF/NOTICE'
        pickFirst 'META-INF/LICENSE'
        pickFirst 'META-INF/LICENSE.txt'
        pickFirst 'META-INF/NOTICE.txt'
    }

    lintOptions {
        abortOnError false
    }

}

dependencies {
    implementation project(":fints4k")

    implementation project(':BankingUiCommon')

    implementation project(':fints4kBankingClient')

    implementation project(':LuceneBankFinder')

    implementation project(':BankingPersistenceJson')
    implementation project(':LuceneBankingPersistence')


    implementation "net.dankito.text.extraction:itext2-text-extractor:$textExtractorVersion"
    implementation "net.dankito.text.extraction:pdfbox-android-text-extractor:$textExtractorVersion"

    implementation "com.github.clans:fab:$clansFloatingActionButtonVersion"

    implementation "com.otaliastudios:autocomplete:$autocompleteVersion"

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutinesVersion"

    implementation "net.dankito.filechooserdialog:filechooserdialog-android:$fileChooserDialogVersion", {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
        exclude group: 'com.android.support', module: 'appcompat-v7'
        exclude group: 'com.android.support', module: 'design'
        exclude group: 'com.android.support.constraint', module: 'constraint-layout'
        exclude module: 'recyclerview-v7'
    }

    implementation "net.dankito.utils:android-utils:$androidUtilsVersion", {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
        exclude group: 'com.android.support', module: 'appcompat-v7'
        exclude group: 'com.android.support', module: 'design'
    }

    implementation "org.slf4j:slf4j-android:$slf4jVersion"


    implementation "androidx.multidex:multidex:$multiDexVersion"

    implementation "androidx.appcompat:appcompat:$appCompatVersion"
    implementation "androidx.recyclerview:recyclerview:$appCompatVersion"
    implementation "androidx.annotation:annotation:$appCompatVersion"
    implementation "com.google.android.material:material:$materialComponentsVersion"
    implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"

    // for MaterialDrawer
    implementation "com.mikepenz:materialdrawer:$materialDrawerVersion"
    implementation "com.mikepenz:materialdrawer-nav:$materialDrawerVersion"

    implementation "com.mikepenz:materialdrawer-iconics:$materialDrawerVersion"
    implementation "com.mikepenz:google-material-typeface:3.0.1.4.original-kotlin@aar"
    implementation "com.mikepenz:fontawesome-typeface:5.9.0.0-kotlin@aar"


    kapt "com.google.dagger:dagger-compiler:$daggerVersion"
    implementation "com.google.dagger:dagger:$daggerVersion"


    implementation 'androidx.navigation:navigation-fragment:2.0.0-rc02'
    implementation 'androidx.navigation:navigation-ui:2.0.0-rc02'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.0.0-rc02'
    implementation 'androidx.navigation:navigation-ui-ktx:2.0.0-rc02'
}