allprojects {
    repositories {
        jcenter()
        mavenCentral()
        google()
    }
}

ext {
    androidMinSdkVersion = 16
    androidTargetSdkVersion = 34
    androidCompileSdkVersion = 34

    aspectRatioLayoutVersion = '1.0.3'

    daggerVersion = '2.48.1'
    dartVersion = '2.0.3'

    exoPlayerVersion = '2.19.1'

    fastScrollVersion = '2.1.0'

    glideVersion = '4.16.0'

    jUnitVersion = '4.13.2'

    mediaVersion = '1.1.0'
    mockitoVersion = '5.7.0'
    mockitoKotlinVersion = '5.1.0'

    parcelerVersion = '1.1.12'
    protobufVersion = '3.1.0'

    robolectricVersion = '4.11.1'
    rxAndroidVersion = '2.1.0'
    rxCursorLoaderVersion = '2.1.1'
    rxBindingVersion = '3.0.0'
    rxJavaVersion = '2.2.6'
    rxPermissionsVersion = '0.9.5@aar'

    testRunnerVersion = '1.0.1'

    commonsDependencies = [
            kotlin            : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",
            media             : "androidx.media:media:$mediaVersion",
            rxJava            : "io.reactivex.rxjava2:rxjava:$rxJavaVersion",
            supportAnnotations: 'androidx.annotation:annotation:1.0.0',
    ]

    presentationDependencies = [
            aspectRatioLayout     : "com.github.doctoror.aspectratiolayout:library:$aspectRatioLayoutVersion",

            constraintLayout      : 'androidx.constraintlayout:constraintlayout:1.1.3',

            dagger                : "com.google.dagger:dagger:$daggerVersion",
            daggerAndroid         : "com.google.dagger:dagger-android:$daggerVersion",
            daggerAndroidSupport  : "com.google.dagger:dagger-android-support:$daggerVersion",
            daggerAndroidProcessor: "com.google.dagger:dagger-android-processor:$daggerVersion",
            daggerCompiler        : "com.google.dagger:dagger-compiler:$daggerVersion",

            dart                  : "com.f2prateek.dart:dart:$dartVersion",
            dartProcessor         : "com.f2prateek.dart:dart-processor:$dartVersion",

            fastScroll            : "io.github.l4digital:fastscroll:$fastScrollVersion",

            glide                 : "com.github.bumptech.glide:glide:$glideVersion",

            henson                : "com.f2prateek.dart:henson:$dartVersion",
            hensonProcessor       : "com.f2prateek.dart:henson-processor:$dartVersion",

            kotlin                : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",

            media                 : "androidx.media:media:$mediaVersion",

            parceler              : "org.parceler:parceler-api:$parcelerVersion",
            parcelerProcessor     : "org.parceler:parceler:$parcelerVersion",

            rxAndroid             : "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion",
            rxBinding             : "com.jakewharton.rxbinding3:rxbinding:$rxBindingVersion",
            rxPermissions         : "com.tbruyelle.rxpermissions2:rxpermissions:$rxPermissionsVersion",
            rxJava                : "io.reactivex.rxjava2:rxjava:$rxJavaVersion",

            supportAppCompat      : 'androidx.appcompat:appcompat:1.0.0',
            supportCardView       : 'androidx.cardview:cardview:1.0.0',
            supportDesign         : 'com.google.android.material:material:1.10.0',
            supportMediaCompat    : 'androidx.media:media:1.0.0',
            supportRecyclerView   : 'androidx.recyclerview:recyclerview:1.0.0'
    ]

    presentationTestDependencies = [
            junit        : "junit:junit:$jUnitVersion",

            kotlinReflect: "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version",

            mockito      : "org.mockito:mockito-core:$mockitoVersion",
            mockitoKotlin: "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion",

            robolectric  : "org.robolectric:robolectric:$robolectricVersion"
    ]

    dataDependencies = [
            exoPlayer     : "com.google.android.exoplayer:exoplayer:$exoPlayerVersion",

            glide         : "com.github.bumptech.glide:glide:$glideVersion",

            kotlin        : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",

            media         : "androidx.media:media:$mediaVersion",

            protobuf      : "com.google.protobuf.nano:protobuf-javanano:$protobufVersion",

            rxCursorLoader: "com.github.doctoror.rxcursorloader:library:$rxCursorLoaderVersion",
            rxAndroid     : "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion",
            rxJava        : "io.reactivex.rxjava2:rxjava:$rxJavaVersion",
    ]

    dataTestDependencies = [
            junit         : "junit:junit:$jUnitVersion",
            mockitoKotlin : "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion",
            robolectric   : "org.robolectric:robolectric:$robolectricVersion",
    ]

    domainDependencies = [
            kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",

            media : "androidx.media:media:$mediaVersion",

            rxJava: "io.reactivex.rxjava2:rxjava:$rxJavaVersion",
    ]
}
