ext { // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r3/current/androidx/Android.bp#3901 ext.room_version = "2.4.0-alpha05" // 2.5.0-alpha01 in AOSP but needs testing // https://android.googlesource.com/platform/external/protobuf/+/refs/tags/android-13.0.0_r32/java/pom.xml#7 ext.protobuf_version = "3.9.1" // test dependencies below - these do not care about AOSP and can be freely updated junit4_version = "4.13.2" junit5_version = "5.7.2" // careful, upgrading this can change a Cipher's IV size in tests!? mockk_version = "1.12.3" espresso_version = "3.4.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_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-jvm') { // https://android.googlesource.com/platform/external/kotlinx.coroutines/+/refs/tags/android-13.0.0_r32/CHANGES.md version { strictly '1.6.4' } }, dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-android') { // https://android.googlesource.com/platform/external/kotlinx.coroutines/+/refs/tags/android-13.0.0_r32/CHANGES.md version { strictly '1.6.4' } }, ], ] ext.std_libs = [ androidx_core: [ // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#2275 dependencies.create('androidx.core:core') { version { strictly '1.9.0-alpha05' } // 1.9.0-alpha03 in AOSP but has SDK version issues }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#2241 dependencies.create('androidx.core:core-ktx') { version { strictly '1.9.0-alpha05' } // 1.9.0-alpha03 in AOSP but has SDK version issues }, ], // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#2705 androidx_fragment: dependencies.create('androidx.fragment:fragment-ktx') { version { strictly '1.5.0-alpha03' } }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#61 androidx_activity: dependencies.create('androidx.activity:activity-ktx') { version { strictly '1.5.0-alpha03' } }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#4275 androidx_preference: dependencies.create('androidx.preference:preference') { version { strictly '1.2.0-alpha01' } }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r3/current/androidx/Android.bp#3376 androidx_lifecycle_viewmodel_ktx: dependencies.create('androidx.lifecycle:lifecycle-viewmodel-ktx') { version { strictly '2.5.0-alpha03' } }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#3134 androidx_lifecycle_livedata_ktx: dependencies.create('androidx.lifecycle:lifecycle-livedata-ktx') { version { strictly '2.5.0-alpha03' } }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r3/current/extras/constraint-layout-x/Android.bp#64 androidx_constraintlayout: dependencies.create('androidx.constraintlayout:constraintlayout') { version { strictly '2.2.0-alpha05' } }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/androidx/Android.bp#2411 androidx_documentfile: dependencies.create('androidx.documentfile:documentfile') { version { strictly '1.1.0-alpha01' } // 1.1.0-alpha02 in AOSP but not released yet }, // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-13.0.0_r32/current/extras/material-design-x/Android.bp#6 com_google_android_material: dependencies.create('com.google.android.material:material') { version { strictly '1.7.0-alpha03' } }, ] ext.lint_libs = [ exceptions: 'com.github.thirdegg:lint-rules:0.1.0' ] ext.storage_libs = [ androidx_room_runtime: dependencies.create('androidx.room:room-runtime') { version { strictly "$room_version" } }, com_google_protobuf_javalite: dependencies.create('com.google.protobuf:protobuf-javalite') { version { strictly "$protobuf_version" } }, // https://github.com/google/tink/releases com_google_crypto_tink_android: dependencies.create('com.google.crypto.tink:tink-android') { // careful with upgrading tink, so old backups continue to be decryptable version { strictly '1.7.0' } }, ]