ext {
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#2713
    ext.room_version = "2.3.0-alpha02"
    // http://aosp.opersys.com/xref/android-11.0.0_r27/xref/external/protobuf/java/pom.xml#7
    ext.protobuf_version = "3.9.1"
    junit4_version = "4.13.2"
    junit5_version = "5.5.2" // careful, upgrading this can change a Cipher's IV size in tests!?
    mockk_version = "1.10.2" // higher versions get us a kotlin version conflict
    espresso_version = "3.3.0"
}

// To produce these binaries, in latest AOSP source tree, run
// $ m
ext.aosp_libs = fileTree(include: [
    // For more information about this module:
    // https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-11.0.0_r3/Android.bp#507
    // framework_intermediates/classes-header.jar works for gradle build as well,
    // but not unit tests, so we use the actual classes (without updatable modules).
    //
    // out/target/common/obj/JAVA_LIBRARIES/framework-minus-apex_intermediates/classes.jar
    'android.jar',
    // out/target/common/obj/JAVA_LIBRARIES/core-libart.com.android.art.release_intermediates/classes.jar
    'libcore.jar',
], dir: "$projectDir/app/libs")

ext.kotlin_libs = [
    std: [
        dependencies.create('org.jetbrains.kotlin:kotlin-stdlib') {
            version { strictly "$aosp_kotlin_version" }
        },
        dependencies.create('org.jetbrains.kotlin:kotlin-stdlib-jdk8') {
            version { strictly "$aosp_kotlin_version" }
        },
        dependencies.create('org.jetbrains.kotlin:kotlin-stdlib-common') {
            version { strictly "$aosp_kotlin_version" }
        },
    ],
    coroutines: [
        dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-core') {
            // https://android.googlesource.com/platform/prebuilts/tools/+/refs/tags/android-11.0.0_r3/common/m2/Android.bp#326
            version { strictly '1.3.0' }
        },
        dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-android') {
            // https://android.googlesource.com/platform/prebuilts/tools/+/refs/tags/android-11.0.0_r3/common/m2/Android.bp#340
            version { strictly '1.3.0' }
        },
    ],
]

ext.std_libs = [
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#610
    androidx_core: dependencies.create('androidx.core:core-ktx') {
        version { strictly '1.5.0-alpha01' }
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#930
    androidx_fragment: dependencies.create('androidx.fragment:fragment-ktx') {
        version { strictly '1.3.0-alpha07' }
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#2412
    androidx_preference: dependencies.create('androidx.preference:preference') {
        version { strictly '1.1.1' } // should be 1.2.0-alpha01, but that is not even released, yet
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#1553
    androidx_lifecycle_viewmodel_ktx: dependencies.create('androidx.lifecycle:lifecycle-viewmodel-ktx') {
        version { strictly '2.3.0-alpha05' }
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#1353
    androidx_lifecycle_livedata_ktx: dependencies.create('androidx.lifecycle:lifecycle-livedata-ktx') {
        version { strictly '2.3.0-alpha05' }
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/extras/constraint-layout-x/Android.bp#30
    androidx_constraintlayout: dependencies.create('androidx.constraintlayout:constraintlayout') {
        version { strictly '2.0.0-beta7' }
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#708
    androidx_documentfile: dependencies.create('androidx.documentfile:documentfile') {
        version { strictly '1.0.1' } // should be 1.1.0-alpha01, but that is not even released, yet
    },
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/extras/material-design-x/Android.bp#6
    com_google_android_material: dependencies.create('com.google.android.material:material') {
        version { strictly '1.1.0-alpha05' }
    },
]

ext.lint_libs = [
    exceptions: 'com.github.thirdegg:lint-rules:0.0.6-beta'
]

ext.storage_libs = [
    // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#2711
    androidx_room_runtime: dependencies.create('androidx.room:room-runtime') {
        version { strictly "$room_version" }
    },
    // http://aosp.opersys.com/xref/android-11.0.0_r27/xref/external/protobuf/java/pom.xml#7
    com_google_protobuf_javalite: dependencies.create('com.google.protobuf:protobuf-javalite') {
        version { strictly "$protobuf_version" }
    },
    com_google_crypto_tink_android: dependencies.create('com.google.crypto.tink:tink-android') {
        version { strictly '1.5.0' }
    },
]
