import com.android.build.gradle.internal.tasks.AndroidTestTask

/*
 * Copyright (C) 2016 Appflate.io
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.3'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
    }
}

ext {
    libraryVersion = "0.4.4"
    compileSdk = 29
    targetSdk = 29
    minSdk = 21
    buildTools = "29.0.2"
    okHttpVersion = "4.9.1"
    butterKnifeVersion = "10.2.1"
    espressoVersion = "3.4.0"
    junitVersion = "4.13.2"
    androidXTestVersion = "1.4.0"
    daggerVersion = "2.27"
}

allprojects {
    repositories {
        jcenter()
        google()
        maven { url "https://jitpack.io" }
        maven { url "https://maven.google.com" }
    }
    version = rootProject.ext.libraryVersion
}


ext.preDexLibraries = project.hasProperty('preDexLibraries')

subprojects {
    project.plugins.whenPluginAdded { plugin ->
        if ('com.android.build.gradle.AppPlugin'.equals(plugin.class.name) || 'com.android.build.gradle.LibraryPlugin'.equals(
            plugin.class.name)) {
            // enable or disable pre-dexing
            project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibraries
        }
    }

    afterEvaluate {
        // Log instrumentation tests results.
        tasks.withType(AndroidTestTask) { task ->
            task.doFirst {
                logging.level = LogLevel.INFO
            }
            task.doLast {
                logging.level = LogLevel.LIFECYCLE
            }
        }
    }
}

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