ext {
    versions = [
            support         : "26.1.0",
            firebase        : '11.4.2',
            okHttp          : "3.9.0",
            retrofit        : '2.3.0',
            dagger          : '2.12',
            butterKnife     : '8.8.1',
            rxJava          : '2.1.5',
            rxJavaAndroid   : '2.0.1',
            rxPermissions   : '0.9.4@aar',
            sqlbrite        : '1.1.2',
            traceur         : '1.0.1',
            stetho          : '1.5.0',
            timber          : '4.5.1',
            glide           : '4.2.0',
            chuck           : '1.1.0',
            leakcanary      : '1.5.4',
            sherlock        : '1.0.4@aar',

            espresso        : '3.0.1',
            testRunner      : '1.0.1',
            hamcrest        : '1.3',
            restMock        : '0.2.2',
            mockito         : '2.10.0',
            junit           : '4.12',
            robolectric     : '3.4.2',
            assertj         : '1.2.0'

    ]

    mockito = [mockito: "org.mockito:mockito-core:$versions.mockito"]
    junit = [junit: "junit:junit:$versions.junit"]
    restMock = [restMock: "com.github.andrzejchm.RESTMock:android:$versions.restMock"]

    supportDeps = [
            cardView         : "com.android.support:cardview-v7:$versions.support",
            appcompatV7      : "com.android.support:appcompat-v7:$versions.support",
            design           : "com.android.support:design:$versions.support",
            recyclerView     : "com.android.support:recyclerview-v7:$versions.support",
            supportAnnotation: "com.android.support:support-annotations:$versions.support",
            gridLayout       : "com.android.support:gridlayout-v7:$versions.support"
    ]

    rxJava = [
            rxJava          : "io.reactivex.rxjava2:rxjava:$versions.rxJava",
            rxAndroid       : "io.reactivex.rxjava2:rxandroid:$versions.rxJavaAndroid",
            traceur         : "com.tspoon.traceur:traceur:$versions.traceur",
            rxRermissions   : "com.tbruyelle.rxpermissions:rxpermissions:$versions.rxPermissions"
    ]

    retrofit = [
            retrofit     : "com.squareup.retrofit2:retrofit:$versions.retrofit",
            rxAdapter    : "com.squareup.retrofit2:adapter-rxjava2:$versions.retrofit",
            gsonConverter: "com.squareup.retrofit2:converter-gson:$versions.retrofit",
            sqlbrite     : "com.squareup.sqlbrite:sqlbrite:$versions.sqlbrite"
    ]

    okHttp = [
            logger: "com.squareup.okhttp3:logging-interceptor:$versions.okHttp",
            okhttp  : "com.squareup.okhttp3:okhttp:$versions.okHttp",
            stetho  : "com.facebook.stetho:stetho-okhttp3:$versions.stetho"
    ]

    googlePlay = [
            maps             : "com.google.android.gms:play-services-maps:$versions.firebase",
            crash            : "com.google.firebase:firebase-crash:$versions.firebase",
            firebaseCore     : "com.google.firebase:firebase-core:$versions.firebase",
            firebaseMessaging: "com.google.firebase:firebase-messaging:$versions.firebase"
    ]

    onlyDebug = [
            chuck   : "com.readystatesoftware.chuck:library:$versions.chuck"
    ]

    onlyRelease = [
            chuckNoOp       : "com.readystatesoftware.chuck:library-no-op:$versions.chuck",
            sherlockNoOp    : "com.github.ajitsing:sherlock-no-op:$versions.sherlock@aar"
    ]

    unitTest = [
            harcrestCore        : "org.hamcrest:hamcrest-core:$versions.hamcrest",
            harmcrestLib        : "org.hamcrest:hamcrest-library:$versions.hamcrest",
            hamcrestIntegration : "org.hamcrest:hamcrest-integration:$versions.hamcrest",
            robolectric         : "org.robolectric:robolectric:$versions.robolectric",
            supportAnnotation   : "com.android.support:support-annotations:$versions.support",
            restMock            : "com.github.andrzejchm.RESTMock:android:$versions.restMock",
            assertj             : "com.squareup.assertj:assertj-android:$versions.assertj",
    ] + junit + mockito + restMock

    androidTests = [
            mockitoAndroid      : "org.mockito:mockito-android:$versions.mockito",
            espressoCore        : "com.android.support.test.espresso:espresso-core:$versions.espresso",
            espressoContrib     : "com.android.support.test.espresso:espresso-contrib:$versions.espresso",
            espressoIntents     : "com.android.support.test.espresso:espresso-intents:$versions.espresso",
            espressoAcc         : "com.android.support.test.espresso:espresso-accessibility:$versions.espresso",
            espressoIdle        : "com.android.support.test.espresso:espresso-idling-resource:$versions.espresso",
            espressoConcurrent  : "com.android.support.test.espresso.idling:idling-concurrent:$versions.espresso",
            espressoNetIdle     : "com.android.support.test.espresso.idling:idling-net:$versions.espresso",
            testRunner          : "com.android.support.test:runner:$versions.testRunner",
            testRules           : "com.android.support.test:rules:$versions.testRunner"
    ] + mockito + restMock

    leakCannary = "com.squareup.leakcanary:leakcanary-android:$versions.leakcanary"
    timber = "com.jakewharton.timber:timber:$versions.timber"
    sherlock = "com.github.ajitsing:sherlock:$versions.sherlock"

    dagger = "com.google.dagger:dagger:$versions.dagger"
    daggerCompiler = "com.google.dagger:dagger-compiler:$versions.dagger"

    butterKnife = "com.jakewharton:butterknife:$versions.butterKnife"
    butterKnifeCompiler = "com.jakewharton:butterknife-compiler:$versions.butterKnife"

    glide = "com.github.bumptech.glide:glide:$versions.glide"
    glideCompiler = "com.github.bumptech.glide:compiler:$versions.glide"
    glideOkhttp = "com.github.bumptech.glide:okhttp3-integration:$versions.glide"

    googlePlayLibs = googlePlay.values()
    supportLibs = supportDeps.values()
    networkLibs = retrofit.values() + okHttp.values()
    rxJavaLibs = rxJava.values()
    otherLibs = [butterKnife, timber, dagger, glide, glideOkhttp]

    debugLibs = onlyDebug.values() + leakCannary
    releaseLibs = onlyRelease.values() + leakCannary
    annotationProcessorLibs = [butterKnifeCompiler, daggerCompiler, glideCompiler]

    unitTestLibs = unitTest.values() + leakCannary
    androidTestsLibs = androidTests.values() + supportLibs
}
