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.1"
    junit5_version = "5.5.2" // careful, upgrading this can change a Cipher's IV size in tests!?
    mockk_version = "1.10.2"
    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' }
    },
]
