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

ext {

  compiler = [java  : JavaVersion.VERSION_1_7,
              kotlin: '1.2.41']

  android = [compileSdk: 26,
             minSdk    : 16,
             targetSdk : 26]

  build = [gradle       : '3.1.3',
           fabric       : '1.24.1',
           realm        : '5.3.0',
           playPublisher: '1.2.0']

  // Google Libraries
  supportVersion = '26.0.2'
  playServicesVersion = '11.2.2'
  multiDexVersion = '1.0.2'

  // Libraries
  crashlyticsVersion = '2.6.8'
  daggerVersion = '2.14.1'
  rxJavaVersion = '2.1.3'
  rxAndroidVersion = '2.0.1'
  javaxAnnotationVersion = '1.0'
  fabVersion = '1.6.4'
  zxingAndroidEmbeddedVersion = '3.4.0'
  dexterVersion = '2.3.1'
  materialDialogsVersion = '0.9.6.0'
  materialDrawerVersion = '6.0.7'
  ankoVersion = '0.10.4'
  flowUpVersion = '1.0.0'
  gsonVersion = '2.8.2'
  spongyCastleVersion = '1.54.0.0'
  robinHoodTickerVersion = '1.1.1'

  // Testing
  robolectricVersion = '3.1.4'
  jUnitVersion = '4.12'
  assertJVersion = '1.7.1'
  mockitoVersion = '2.10.0'
  mockitoKotlinVersion = '1.5.0'
  hamkrestVersion = '1.4.2.0'
  supportTestVersion = '1.0.1'
  espressoVersion = '3.0.1'

  buildPlugins = [gradle       : "com.android.tools.build:gradle:$build.gradle",
                  kotlin       : "org.jetbrains.kotlin:kotlin-gradle-plugin:$compiler.kotlin",
                  realm        : "io.realm:realm-gradle-plugin:$build.realm",
                  fabric       : "io.fabric.tools:gradle:$build.fabric",
                  playPublisher: "com.github.triplet.gradle:play-publisher:$build.playPublisher"]

  presentationDependencies = [multiDex            : "com.android.support:multidex:${multiDexVersion}",
                              kotlinStdLib        : "org.jetbrains.kotlin:kotlin-stdlib:${compiler.kotlin}",
                              kotlinReflect       : "org.jetbrains.kotlin:kotlin-reflect:$compiler.kotlin",
                              crashlytics         : "com.crashlytics.sdk.android:crashlytics:${crashlyticsVersion}@aar",
                              daggerCompiler      : "com.google.dagger:dagger-compiler:${daggerVersion}",
                              dagger              : "com.google.dagger:dagger:${daggerVersion}",
                              rxJava              : "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
                              rxAndroid           : "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
                              javaxAnnotation     : "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
                              supportVersion      : "com.android.support:support-v4:${supportVersion}",
                              appCompat           : "com.android.support:appcompat-v7:${supportVersion}",
                              preferenceCompat    : "com.android.support:preference-v7:${supportVersion}",
                              design              : "com.android.support:design:${supportVersion}",
                              recyclerView        : "com.android.support:recyclerview-v7:${supportVersion}",
                              fab                 : "com.github.clans:fab:${fabVersion}",
                              dexter              : "com.karumi:dexter:${dexterVersion}",
                              zxingAndroidEmbedded: "com.journeyapps:zxing-android-embedded:${zxingAndroidEmbeddedVersion}",
                              materialDialogs     : "com.github.afollestad.material-dialogs:core:${materialDialogsVersion}",
                              materialDrawer      : "com.mikepenz:materialdrawer:${materialDrawerVersion}@aar",
                              anko                : "org.jetbrains.anko:anko-sdk15:${ankoVersion}",
                              ankoSupport         : "org.jetbrains.anko:anko-support-v4:${ankoVersion}",
                              flowUp              : "io.flowup:android-sdk:${flowUpVersion}",
                              robinHoodTicker     : "com.robinhood.ticker:ticker:${robinHoodTickerVersion}"]

  presentationTestDependencies = ["androidAnnotations": "com.android.support:support-annotations:${supportVersion}",
                                  "supportRunner"     : "com.android.support.test:runner:${supportTestVersion}",
                                  "supportRules"      : "com.android.support.test:rules:${supportTestVersion}",
                                  "espressoCore"      : "com.android.support.test.espresso:espresso-core:${espressoVersion}",
                                  "espressoIntents"   : "com.android.support.test.espresso:espresso-intents:${espressoVersion}"]

  domainDependencies = [kotlinStdLib   : "org.jetbrains.kotlin:kotlin-stdlib:$compiler.kotlin",
                        kotlinReflect  : "org.jetbrains.kotlin:kotlin-reflect:$compiler.kotlin",
                        daggerCompiler : "com.google.dagger:dagger-compiler:${daggerVersion}",
                        dagger         : "com.google.dagger:dagger:${daggerVersion}",
                        javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
                        rxJava         : "io.reactivex.rxjava2:rxjava:${rxJavaVersion}"]

  domainTestDependencies = [kotlinStdLib : "org.jetbrains.kotlin:kotlin-stdlib:$compiler.kotlin",
                            junitKotlin  : "org.jetbrains.kotlin:kotlin-test-junit:$compiler.kotlin",
                            junit        : "junit:junit:${jUnitVersion}",
                            hamkrest     : "com.natpryce:hamkrest:${hamkrestVersion}",
                            mockitoKotlin: "com.nhaarman:mockito-kotlin-kt1.1:${mockitoKotlinVersion}"]

  dataDependencies = [kotlinStdLib      : "org.jetbrains.kotlin:kotlin-stdlib:$compiler.kotlin",
                      kotlinReflect     : "org.jetbrains.kotlin:kotlin-reflect:$compiler.kotlin",
                      daggerCompiler    : "com.google.dagger:dagger-compiler:${daggerVersion}",
                      dagger            : "com.google.dagger:dagger:${daggerVersion}",
                      rxJava            : "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
                      rxAndroid         : "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
                      javaxAnnotation   : "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
                      androidAnnotations: "com.android.support:support-annotations:${supportVersion}",
                      gson              : "com.google.code.gson:gson:${gsonVersion}",
                      spongyCastle      : "com.madgag.spongycastle:core:${spongyCastleVersion}"]

  dataTestDependencies = [kotlinStdLib : "org.jetbrains.kotlin:kotlin-stdlib:$compiler.kotlin",
                          junitKotlin  : "org.jetbrains.kotlin:kotlin-test-junit:$compiler.kotlin",
                          junit        : "junit:junit:${jUnitVersion}",
                          hamkrest     : "com.natpryce:hamkrest:${hamkrestVersion}",
                          mockitoKotlin: "com.nhaarman:mockito-kotlin-kt1.1:${mockitoKotlinVersion}",
                          robolectric  : "org.robolectric:robolectric:${robolectricVersion}"]
}