ext.versions = [

        'minSdk'            : 21,
        'compileSdk'        : 31,
        'targetSdk'         : 31,
        'sourceCompat'      : JavaVersion.VERSION_11,
        'targetCompat'      : JavaVersion.VERSION_11,
]


// Pinned to 7.1.3 because of https://github.com/vector-im/element-android/issues/6142
// Please test carefully before upgrading again.
def gradle = "7.1.3"
// Ref: https://kotlinlang.org/releases.html
def kotlin = "1.6.21"
def kotlinCoroutines = "1.6.3"
def dagger = "2.42"
def retrofit = "2.9.0"
def arrow = "0.8.2"
def markwon = "4.6.2"
def moshi = "1.13.0"
def lifecycle = "2.4.1"
def flowBinding = "1.2.0"
def flipper = "0.151.1"
def epoxy = "4.6.2"
def mavericks = "2.7.0"
def glide = "4.13.2"
def bigImageViewer = "1.8.1"
def jjwt = "0.11.5"
def vanniktechEmoji = "0.15.0"

def fragment = "1.4.1"

// Testing
def mockk = "1.12.3" // We need to use 1.12.3 to have mocking in androidTest until a new version is released: https://github.com/mockk/mockk/issues/819
def espresso = "3.4.0"
def androidxTest = "1.4.0"
def androidxOrchestrator = "1.4.1"
ext.libs = [
        gradle      : [
                'gradlePlugin'            : "com.android.tools.build:gradle:$gradle",
                'kotlinPlugin'            : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin",
                'hiltPlugin'              : "com.google.dagger:hilt-android-gradle-plugin:$dagger"

        ],
        jetbrains   : [
                'coroutinesCore'          : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
                'coroutinesAndroid'       : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
                'coroutinesTest'          : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
        ],
        androidx    : [
                'annotation'              : "androidx.annotation:annotation:1.4.0",
                'activity'                : "androidx.activity:activity:1.4.0",
                'annotations'             : "androidx.annotation:annotation:1.3.0",
                'appCompat'               : "androidx.appcompat:appcompat:1.4.2",
                'biometric'               : "androidx.biometric:biometric:1.1.0",
                'core'                    : "androidx.core:core-ktx:1.8.0",
                'recyclerview'            : "androidx.recyclerview:recyclerview:1.2.1",
                'exifinterface'           : "androidx.exifinterface:exifinterface:1.3.3",
                'fragmentKtx'             : "androidx.fragment:fragment-ktx:$fragment",
                'fragmentTesting'         : "androidx.fragment:fragment-testing:$fragment",
                'constraintLayout'        : "androidx.constraintlayout:constraintlayout:2.1.4",
                'work'                    : "androidx.work:work-runtime-ktx:2.7.1",
                'autoFill'                : "androidx.autofill:autofill:1.1.0",
                'preferenceKtx'           : "androidx.preference:preference-ktx:1.2.0",
                'junit'                   : "androidx.test.ext:junit:1.1.3",
                'lifecycleCommon'         : "androidx.lifecycle:lifecycle-common:$lifecycle",
                'lifecycleLivedata'       : "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle",
                'lifecycleProcess'        : "androidx.lifecycle:lifecycle-process:$lifecycle",
                'lifecycleRuntimeKtx'     : "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle",
                'datastore'               : "androidx.datastore:datastore:1.0.0",
                'datastorepreferences'    : "androidx.datastore:datastore-preferences:1.0.0",
                'pagingRuntimeKtx'        : "androidx.paging:paging-runtime-ktx:2.1.2",
                'coreTesting'             : "androidx.arch.core:core-testing:2.1.0",
                'testCore'                : "androidx.test:core:$androidxTest",
                'orchestrator'            : "androidx.test:orchestrator:$androidxOrchestrator",
                'testRunner'              : "androidx.test:runner:$androidxTest",
                'testRules'               : "androidx.test:rules:$androidxTest",
                'espressoCore'            : "androidx.test.espresso:espresso-core:$espresso",
                'espressoContrib'         : "androidx.test.espresso:espresso-contrib:$espresso",
                'espressoIntents'         : "androidx.test.espresso:espresso-intents:$espresso",
                'viewpager2'              : "androidx.viewpager2:viewpager2:1.0.0",
                'transition'              : "androidx.transition:transition:1.2.0",
        ],
        google      : [
                'material'                : "com.google.android.material:material:1.6.1"
        ],
        dagger      : [
                'dagger'                  : "com.google.dagger:dagger:$dagger",
                'daggerCompiler'          : "com.google.dagger:dagger-compiler:$dagger",
                'hilt'                    : "com.google.dagger:hilt-android:$dagger",
                'hiltAndroidTesting'      : "com.google.dagger:hilt-android-testing:$dagger",
                'hiltCompiler'            : "com.google.dagger:hilt-compiler:$dagger"
        ],
        flipper     : [
                'flipper'                 : "com.facebook.flipper:flipper:$flipper",
                'flipperNetworkPlugin'    : "com.facebook.flipper:flipper-network-plugin:$flipper",
        ],
        squareup    : [
                'moshi'                  : "com.squareup.moshi:moshi:$moshi",
                'moshiKt'                : "com.squareup.moshi:moshi-kotlin:$moshi",
                'moshiKotlin'            : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
                'retrofit'               : "com.squareup.retrofit2:retrofit:$retrofit",
                'retrofitMoshi'          : "com.squareup.retrofit2:converter-moshi:$retrofit"
        ],
        rx          : [
                'rxKotlin'               : "io.reactivex.rxjava2:rxkotlin:2.4.0"
        ],
        arrow       : [
                'core'                   : "io.arrow-kt:arrow-core:$arrow",
                'instances'              : "io.arrow-kt:arrow-instances-core:$arrow"
        ],
        markwon     : [
                'core'                   : "io.noties.markwon:core:$markwon",
                'extLatex'               : "io.noties.markwon:ext-latex:$markwon",
                'inlineParser'           : "io.noties.markwon:inline-parser:$markwon",
                'html'                   : "io.noties.markwon:html:$markwon"
        ],
        airbnb      : [
                'epoxy'                  : "com.airbnb.android:epoxy:$epoxy",
                'epoxyGlide'             : "com.airbnb.android:epoxy-glide-preloading:$epoxy",
                'epoxyProcessor'         : "com.airbnb.android:epoxy-processor:$epoxy",
                'epoxyPaging'            : "com.airbnb.android:epoxy-paging:$epoxy",
                'mavericks'              : "com.airbnb.android:mavericks:$mavericks",
                'mavericksTesting'       : "com.airbnb.android:mavericks-testing:$mavericks"
        ],
        maplibre    : [
                'androidSdk'             : "org.maplibre.gl:android-sdk:9.5.2",
                'pluginAnnotation'       : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
        ],
        mockk      : [
                'mockk'                   : "io.mockk:mockk:$mockk",
                'mockkAndroid'            : "io.mockk:mockk-android:$mockk"
        ],
        github     : [
                'glide'                  : "com.github.bumptech.glide:glide:$glide",
                'glideCompiler'          : "com.github.bumptech.glide:compiler:$glide",
                'bigImageViewer'         : "com.github.piasy:BigImageViewer:$bigImageViewer",
                'glideImageLoader'       : "com.github.piasy:GlideImageLoader:$bigImageViewer",
                'progressPieIndicator'   : "com.github.piasy:ProgressPieIndicator:$bigImageViewer",
                'glideImageViewFactory'  : "com.github.piasy:GlideImageViewFactory:$bigImageViewer",
                'flowBinding'            : "io.github.reactivecircus.flowbinding:flowbinding-android:$flowBinding",
                'flowBindingAppcompat'   : "io.github.reactivecircus.flowbinding:flowbinding-appcompat:$flowBinding",
                'flowBindingMaterial'    : "io.github.reactivecircus.flowbinding:flowbinding-material:$flowBinding"
        ],
        jakewharton : [
                'timber'                 : "com.jakewharton.timber:timber:5.0.1"
        ],
        jsonwebtoken: [
                'jjwtApi'                : "io.jsonwebtoken:jjwt-api:$jjwt",
                'jjwtImpl'               : "io.jsonwebtoken:jjwt-impl:$jjwt",
                'jjwtOrgjson'            : "io.jsonwebtoken:jjwt-orgjson:$jjwt"
        ],
        vanniktech  : [
                'emojiMaterial'          : "com.vanniktech:emoji-material:$vanniktechEmoji",
                'emojiGoogle'            : "com.vanniktech:emoji-google:$vanniktechEmoji"
        ],
        apache      : [
                'commonsImaging'         : "org.apache.sanselan:sanselan:0.97-incubator"
        ],
        tests       : [
                'kluent'                 : "org.amshove.kluent:kluent-android:1.68",
                'timberJunitRule'        : "net.lachlanmckee:timber-junit-rule:1.0.1",
                'junit'                  : "junit:junit:4.13.2"
        ]
]