buildscript {
}

def gitVersion() {
    def process
    def maybeTagOfCurrentCommit = 'git describe --contains HEAD'.execute()
    if (maybeTagOfCurrentCommit.text.isEmpty()) {
        println "No tag on current commit. Will take the latest one."
        process = "git for-each-ref refs/tags --sort=-authordate --format='%(refname:short)' --count=1".execute()
    } else {
        println "Tag found on current commit"
        process = 'git describe --contains HEAD'.execute()
    }
    return process.text.replaceAll("'", "").substring(1).replaceAll("\\.", "").trim()
}

def versionCodeFromGit() {
    println "version code " + gitVersion()
    return gitVersion().toInteger()
}

def versionNameFromGit() {
    println "version name " + gitVersion()
    return gitVersion()
}

apply plugin: 'kotlin-kapt'

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    compileSdkVersion 28
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId "apps.amine.bou.readerforselfoss"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode versionCodeFromGit()
        versionName versionNameFromGit()

        // Enabling multidex support.
        multiDexEnabled true
        lintOptions {
            abortOnError true
            disable 'InvalidPackage'
        }
        vectorDrawables.useSupportLibrary = true

        // tests
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["room.schemaLocation":
                                     "$projectDir/schemas".toString()]
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        debug {
        }
    }
    flavorDimensions "build"
    productFlavors {
        githubConfig {
            versionNameSuffix '-github'
            dimension "build"
        }
    }
}

dependencies {
    // Testing
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-beta01'
    androidTestImplementation 'androidx.test:runner:1.2.0-beta01'
    // Espresso-contrib for DatePicker, RecyclerView, Drawer actions, Accessibility checks, CountingIdlingResource
    androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.2.0-beta01'
    // Espresso-intents for validation and stubbing of Intents
    androidTestImplementation 'androidx.test.espresso:espresso-intents:3.2.0-beta01'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    // Android Support
    implementation "androidx.appcompat:appcompat:$androidx_version"
    implementation "com.google.android.material:material:1.1.0-alpha06"
    implementation "androidx.recyclerview:recyclerview:1.1.0-alpha05"
    implementation "androidx.legacy:legacy-support-v4:$android_version"
    implementation "androidx.vectordrawable:vectordrawable:1.1.0-beta01"
    implementation "androidx.browser:browser:$android_version"
    implementation "androidx.cardview:cardview:$android_version"
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha5'

    //multidex
    implementation 'androidx.multidex:multidex:2.0.1'

    // About
    implementation('com.mikepenz:aboutlibraries:6.2.0@aar') {
        transitive = true
    }

    // Retrofit + http logging + okhttp
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'com.burgstaller:okhttp-digest:1.12'

    // Material-ish things
    implementation 'com.ashokvarma.android:bottom-navigation-bar:2.1.0'
    implementation 'com.github.jd-alexander:LikeButton:0.2.3'
    implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'

    // glide
    implementation 'com.github.bumptech.glide:glide:4.1.1'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.1.1'

    // Drawer
    implementation 'co.zsmb:materialdrawer-kt:2.0.2'

    // Themes
    implementation 'com.52inc:scoops:1.0.0'
    implementation 'com.jaredrummler:colorpicker:1.0.2'
    implementation 'com.github.rubensousa:floatingtoolbar:1.5.1'

    // Pager
    implementation 'me.relex:circleindicator:2.0.0@aar'

    implementation 'androidx.core:core-ktx:1.1.0-beta01'

    implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"

    implementation "android.arch.work:work-runtime-ktx:$work_version"
}