buildscript {
    ext {
        buildConfig = [
                'compileSdk': 29,
                'targetSdk': 29,
                'minSdk': 21,
                'buildTools': '29.0.3',
                'robolectricSdk': 29
        ]

        versions = [
                'kotlin': '1.4.31',
                'kotlinCoroutines': '1.4.1',
                'androidxAppCompat': '1.2.0',
                'androidxRecyclerView': '1.1.0',
                'androidxLifecycle': '2.2.0',
                'androidxAnnotation': '1.1.0',
                'androidxNavigation': '2.3.1',
                'androidxConstraintLayout': '2.0.4',
                'androidxWorkManager': '2.4.0',
                'androidxFragment': '1.2.5',
                'androidxLocalBroadcastManager': '1.0.0',
                'androidxCore': '1.3.2',
                'androidxCardView': '1.0.0',
                'androidxPreference': '1.1.1',
                'androidxTestCore': '1.3.0',
                'materialComponents': '1.2.1',
                'fastAdapter': '5.4.0',
                'preferencesFix': '1.1.0',
                'okio': '2.9.0',
                'moshi': '1.11.0',
                'timber': '4.7.1',
                'koin': '2.1.6',
                'commonsIo': '2.6',
                'mime4j': '0.8.3',
                'okhttp': '4.9.0',
                'minidns': '1.0.0',
                'glide': '4.11.0',

                'androidxTestRunner': '1.3.0',
                'junit': '4.13.1',
                'robolectric': '4.4',
                'mockito': '3.6.0',
                'mockitoKotlin': '2.2.0',
                'truth': '1.1',

                'ktlint': '0.39.0'
        ]

        javaVersion = JavaVersion.VERSION_1_8
        kotlinJvmVersion = "1.8"
    }

    repositories {
        mavenCentral()
        google()
        maven { url "https://plugins.gradle.org/m2/" }
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
        classpath "org.jlleitschuh.gradle:ktlint-gradle:9.4.1"
    }
}

project.ext {
    testCoverage = project.hasProperty('testCoverage')
}

subprojects {
    repositories {
        mavenCentral()
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }

    tasks.withType(Test) {
        testLogging {
            exceptionFormat "full"
            showCauses true
            showExceptions true
            showStackTraces true
        }
    }

    apply plugin: 'org.jlleitschuh.gradle.ktlint'
    ktlint {
        version = versions.ktlint
    }
}
