// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlinVersion = '1.2.70'
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath 'io.fabric.tools:gradle:1.+'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven { url 'https://maven.fabric.io/public' }
        maven { url "https://www.jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    // Sdk and tools
    minSdkVersion = 15
    targetSdkVersion = 27
    compileSdkVersion = 27
    buildToolsVersion = '27.0.3'

    // App dependencies
    supportLibraryVersion = '27.1.1'
    daggerVersion = '2.5'
    retrofitVersion = '2.4.0'
    okHttp3Version = '3.11.0'
    butterKnifeVersion = '8.5.1'

    // rxjava dependencies
    rxjavaVersion = '2.2.1'
    rxandroidVersion = '2.0.2'
    rxKotlinVersion = '2.2.0'

    //android-job
    androidJobVersion = '1.2.6'

    //db-flow
    dbflowVersion = "4.2.4"

    junitVersion = '4.12'
    mockitoVersion = '2.6.2'
    powerMockito = '1.6.2'
    hamcrestVersion = '1.3'
    runnerVersion = '0.5'
    rulesVersion = '0.5'
    espressoVersion = '3.0.2'
}
