Switch to using toml version catalogs.

Resolves #13792
This commit is contained in:
Jameson Williams 2024-11-15 19:19:22 -06:00 committed by Greyson Parrelli
parent cee44fcc93
commit f5db6b6c91
7 changed files with 240 additions and 228 deletions

View file

@ -13,11 +13,17 @@ dependencyResolutionManagement {
mavenCentral()
gradlePluginPortal()
}
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
create("testLibs") {
from(files("../gradle/test-libs.versions.toml"))
}
}
}
rootProject.name = "build-logic"
include(":plugins")
include(":tools")
apply(from = "../dependencies.gradle.kts")

View file

@ -1,224 +0,0 @@
// IMPORTANT: After changing a dependency, please run:
// ./gradlew --write-verification-metadata sha256 qa --rerun-tasks
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
version("androidx-appcompat", "1.6.1")
version("androidx-activity", "1.9.2")
version("androidx-camera", "1.3.4")
version("androidx-fragment", "1.8.3")
version("androidx-lifecycle", "2.8.5")
version("androidx-media3", "1.3.1")
version("androidx-navigation", "2.8.0")
version("androidx-window", "1.3.0")
version("exoplayer", "2.19.0")
version("glide", "4.15.1")
version("kotlin", "1.9.20")
version("libsignal-client", "0.62.0")
version("mp4parser", "1.9.39")
version("android-gradle-plugin", "8.4.0")
version("accompanist", "0.28.0")
version("nanohttpd", "2.3.1")
// Android Plugins
library("android-library", "com.android.library", "com.android.library.gradle.plugin").versionRef("android-gradle-plugin")
library("android-application", "com.android.application", "com.android.application.gradle.plugin").versionRef("android-gradle-plugin")
// Compose
library("androidx-compose-bom", "androidx.compose:compose-bom:2024.09.00")
library("androidx-compose-material3", "androidx.compose.material3", "material3").withoutVersion()
library("androidx-compose-ui-tooling-preview", "androidx.compose.ui", "ui-tooling-preview").withoutVersion()
library("androidx-compose-ui-tooling-core", "androidx.compose.ui", "ui-tooling").withoutVersion()
library("androidx-compose-ui-test-manifest", "androidx.compose.ui", "ui-test-manifest").withoutVersion()
library("androidx-compose-runtime-livedata", "androidx.compose.runtime", "runtime-livedata").withoutVersion()
library("androidx-compose-rxjava3", "androidx.compose.runtime:runtime-rxjava3:1.4.2")
library("ktlint-twitter-compose", "com.twitter.compose.rules:ktlint:0.0.26")
// Accompanist
library("accompanist-permissions", "com.google.accompanist", "accompanist-permissions").versionRef("accompanist")
library("accompanist-drawablepainter", "com.google.accompanist:accompanist-drawablepainter:0.36.0")
// Desugaring
library("android-tools-desugar", "com.android.tools:desugar_jdk_libs:1.1.6")
// Kotlin
library("kotlin-stdlib-jdk8", "org.jetbrains.kotlin", "kotlin-stdlib-jdk8").versionRef("kotlin")
library("kotlin-reflect", "org.jetbrains.kotlin", "kotlin-reflect").versionRef("kotlin")
library("kotlin-gradle-plugin", "org.jetbrains.kotlin", "kotlin-gradle-plugin").versionRef("kotlin")
library("ktlint", "org.jlleitschuh.gradle:ktlint-gradle:12.1.1")
library("kotlinx-coroutines-core", "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
library("kotlinx-coroutines-core-jvm", "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0")
library("kotlinx-coroutines-play-services", "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1")
library("kotlinx-coroutines-rx3", "org.jetbrains.kotlinx:kotlinx-coroutines-rx3:1.3.9")
// Android X
library("androidx-activity-ktx", "androidx.activity", "activity-ktx").versionRef("androidx-activity")
library("androidx-activity-compose", "androidx.activity", "activity-compose").versionRef("androidx-activity")
library("androidx-appcompat", "androidx.appcompat", "appcompat").versionRef("androidx-appcompat")
library("androidx-core-ktx", "androidx.core:core-ktx:1.12.0")
library("androidx-fragment-ktx", "androidx.fragment", "fragment-ktx").versionRef("androidx-fragment")
library("androidx-fragment-testing", "androidx.fragment", "fragment-testing").versionRef("androidx-fragment")
library("androidx-annotation", "androidx.annotation:annotation:1.4.0")
library("androidx-constraintlayout", "androidx.constraintlayout:constraintlayout:2.1.4")
library("androidx-window-window", "androidx.window", "window").versionRef("androidx-window")
library("androidx-window-java", "androidx.window", "window-java").versionRef("androidx-window")
library("androidx-recyclerview", "androidx.recyclerview:recyclerview:1.3.1")
library("androidx-legacy-support", "androidx.legacy:legacy-support-v13:1.0.0")
library("androidx-legacy-preference", "androidx.legacy:legacy-preference-v14:1.0.0")
library("androidx-preference", "androidx.preference:preference:1.0.0")
library("androidx-gridlayout", "androidx.gridlayout:gridlayout:1.0.0")
library("androidx-exifinterface", "androidx.exifinterface:exifinterface:1.3.3")
library("androidx-media3-exoplayer", "androidx.media3", "media3-exoplayer").versionRef("androidx-media3")
library("androidx-media3-session", "androidx.media3", "media3-session").versionRef("androidx-media3")
library("androidx-media3-ui", "androidx.media3", "media3-ui").versionRef("androidx-media3")
library("androidx-media3-decoder", "androidx.media3", "media3-decoder").versionRef("androidx-media3")
library("androidx-media3-common", "androidx.media3", "media3-common").versionRef("androidx-media3")
library("androidx-navigation-fragment-ktx", "androidx.navigation", "navigation-fragment-ktx").versionRef("androidx-navigation")
library("androidx-navigation-ui-ktx", "androidx.navigation", "navigation-ui-ktx").versionRef("androidx-navigation")
library("androidx-navigation-compose", "androidx.navigation", "navigation-compose").versionRef("androidx-navigation")
library("androidx-lifecycle-viewmodel-ktx", "androidx.lifecycle", "lifecycle-viewmodel-ktx").versionRef("androidx-lifecycle")
library("androidx-lifecycle-livedata-core", "androidx.lifecycle", "lifecycle-livedata").versionRef("androidx-lifecycle")
library("androidx-lifecycle-livedata-ktx", "androidx.lifecycle", "lifecycle-livedata-ktx").versionRef("androidx-lifecycle")
library("androidx-lifecycle-process", "androidx.lifecycle", "lifecycle-process").versionRef("androidx-lifecycle")
library("androidx-lifecycle-viewmodel-savedstate", "androidx.lifecycle", "lifecycle-viewmodel-savedstate").versionRef("androidx-lifecycle")
library("androidx-lifecycle-common-java8", "androidx.lifecycle", "lifecycle-common-java8").versionRef("androidx-lifecycle")
library("androidx-lifecycle-reactivestreams-ktx", "androidx.lifecycle", "lifecycle-reactivestreams-ktx").versionRef("androidx-lifecycle")
library("androidx-lifecycle-runtime-compose", "androidx.lifecycle", "lifecycle-runtime-compose").versionRef("androidx-lifecycle")
library("androidx-camera-core", "androidx.camera", "camera-core").versionRef("androidx-camera")
library("androidx-camera-camera2", "androidx.camera", "camera-camera2").versionRef("androidx-camera")
library("androidx-camera-extensions", "androidx.camera", "camera-extensions").versionRef("androidx-camera")
library("androidx-camera-lifecycle", "androidx.camera", "camera-lifecycle").versionRef("androidx-camera")
library("androidx-camera-view", "androidx.camera", "camera-view").versionRef("androidx-camera")
library("androidx-concurrent-futures", "androidx.concurrent:concurrent-futures:1.0.0")
library("androidx-autofill", "androidx.autofill:autofill:1.0.0")
library("androidx-biometric", "androidx.biometric:biometric:1.1.0")
library("androidx-sharetarget", "androidx.sharetarget:sharetarget:1.2.0-rc02")
library("androidx-sqlite", "androidx.sqlite:sqlite:2.1.0")
library("androidx-core-role", "androidx.core:core-role:1.0.0")
library("androidx-profileinstaller", "androidx.profileinstaller:profileinstaller:1.2.2")
library("androidx-asynclayoutinflater", "androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01")
library("androidx-asynclayoutinflater-appcompat", "androidx.asynclayoutinflater:asynclayoutinflater-appcompat:1.1.0-alpha01")
library("androidx-emoji2", "androidx.emoji2:emoji2:1.4.0")
library("androidx-documentfile", "androidx.documentfile:documentfile:1.0.0")
library("android-billing", "com.android.billingclient:billing-ktx:7.0.0")
// Material
library("material-material", "com.google.android.material:material:1.8.0")
// Google
library("google-protobuf-javalite", "com.google.protobuf:protobuf-javalite:3.11.4")
library("google-libphonenumber", "com.googlecode.libphonenumber:libphonenumber:8.13.40")
library("google-play-services-maps", "com.google.android.gms:play-services-maps:18.2.0")
library("google-play-services-auth", "com.google.android.gms:play-services-auth:21.0.0")
library("google-play-services-wallet", "com.google.android.gms:play-services-wallet:19.2.1")
library("google-zxing-android-integration", "com.google.zxing:android-integration:3.3.0")
library("google-zxing-core", "com.google.zxing:core:3.4.1")
library("google-ez-vcard", "com.googlecode.ez-vcard:ez-vcard:0.9.11")
library("google-jsr305", "com.google.code.findbugs:jsr305:3.0.2")
library("google-guava-android", "com.google.guava:guava:30.0-android")
library("google-flexbox", "com.google.android.flexbox:flexbox:3.0.0")
bundle("media3", listOf("androidx-media3-exoplayer", "androidx-media3-session", "androidx-media3-ui"))
// Firebase
library("firebase-messaging", "com.google.firebase:firebase-messaging:23.1.2")
// 1st Party
library("libsignal-client", "org.signal", "libsignal-client").versionRef("libsignal-client")
library("libsignal-android", "org.signal", "libsignal-android").versionRef("libsignal-client")
library("signal-aesgcmprovider", "org.signal:aesgcmprovider:0.0.3")
library("signal-ringrtc", "org.signal:ringrtc-android:2.48.4")
library("signal-android-database-sqlcipher", "org.signal:sqlcipher-android:4.6.0-S1")
// Third Party
library("greenrobot-eventbus", "org.greenrobot:eventbus:3.0.0")
library("jackson-core", "com.fasterxml.jackson.core:jackson-databind:2.9.9.2")
library("jackson-module-kotlin", "com.fasterxml.jackson.module:jackson-module-kotlin:2.12.0")
library("square-okhttp3", "com.squareup.okhttp3:okhttp:4.12.0")
library("square-okio", "com.squareup.okio:okio:3.6.0")
library("square-leakcanary", "com.squareup.leakcanary:leakcanary-android:2.7")
library("rxjava3-rxjava", "io.reactivex.rxjava3:rxjava:3.0.13")
library("rxjava3-rxandroid", "io.reactivex.rxjava3:rxandroid:3.0.0")
library("rxjava3-rxkotlin", "io.reactivex.rxjava3:rxkotlin:3.0.1")
library("rxdogtag", "com.uber.rxdogtag2:rxdogtag:2.0.1")
library("conscrypt-android", "org.conscrypt:conscrypt-android:2.5.2")
library("mobilecoin", "com.mobilecoin:android-sdk:6.0.1")
library("leolin-shortcutbadger", "me.leolin:ShortcutBadger:1.1.22")
library("emilsjolander-stickylistheaders", "se.emilsjolander:stickylistheaders:2.7.0")
library("glide-glide", "com.github.bumptech.glide", "glide").versionRef("glide")
library("glide-ksp", "com.github.bumptech.glide", "ksp").versionRef("glide")
library("roundedimageview", "com.makeramen:roundedimageview:2.1.0")
library("materialish-progress", "com.pnikosis:materialish-progress:1.7")
library("subsampling-scale-image-view", "com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0")
library("android-tooltips", "com.tomergoldst.android:tooltips:1.0.6")
library("stream", "com.annimon:stream:1.1.8")
library("lottie", "com.airbnb.android:lottie:5.2.0")
library("lottie-compose", "com.airbnb.android:lottie-compose:6.4.0")
library("dnsjava", "dnsjava:dnsjava:2.1.9")
library("nanohttpd-webserver", "org.nanohttpd", "nanohttpd-webserver").versionRef("nanohttpd")
library("nanohttpd-websocket", "org.nanohttpd", "nanohttpd-websocket").versionRef("nanohttpd")
library("kotlinx-collections-immutable", "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5")
// Can"t use the newest version because it hits some weird NoClassDefFoundException
library("jknack-handlebars", "com.github.jknack:handlebars:4.0.7")
// Mp4Parser
library("mp4parser-isoparser", "org.mp4parser", "isoparser").versionRef("mp4parser")
library("mp4parser-streaming", "org.mp4parser", "streaming").versionRef("mp4parser")
library("mp4parser-muxer", "org.mp4parser", "muxer").versionRef("mp4parser")
bundle("mp4parser", listOf("mp4parser-isoparser", "mp4parser-streaming", "mp4parser-muxer"))
}
create("benchmarkLibs") {
version("androidx-test-ext-junit", "1.1.3")
// Macrobench/Baseline profiles
library("androidx-test-ext-junit", "androidx.test.ext", "junit").versionRef("androidx-test-ext-junit")
library("espresso-core", "androidx.test.espresso:espresso-core:3.4.0")
library("uiautomator", "androidx.test.uiautomator:uiautomator:2.2.0")
library("androidx-benchmark-macro", "androidx.benchmark:benchmark-macro-junit4:1.1.1")
library("androidx-benchmark-micro", "androidx.benchmark:benchmark-junit4:1.1.0-beta04")
}
create("testLibs") {
version("androidx-test", "1.5.0")
version("androidx-test-ext-junit", "1.1.5")
version("robolectric", "4.10.3")
version("espresso", "3.4.0")
library("junit-junit", "junit:junit:4.13.2")
library("androidx-test-core", "androidx.test", "core").versionRef("androidx-test")
library("androidx-test-core-ktx", "androidx.test", "core-ktx").versionRef("androidx-test")
library("androidx-test-ext-junit", "androidx.test.ext", "junit").versionRef("androidx-test-ext-junit")
library("androidx-test-ext-junit-ktx", "androidx.test.ext", "junit-ktx").versionRef("androidx-test-ext-junit")
library("androidx-test-monitor", "androidx.test:monitor:1.6.1")
library("androidx-test-orchestrator", "androidx.test:orchestrator:1.4.1")
library("androidx-test-runner", "androidx.test", "runner").versionRef("androidx-test")
library("espresso-core", "androidx.test.espresso", "espresso-core").versionRef("espresso")
library("kotlinx-coroutines-test", "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
library("mockito-core", "org.mockito:mockito-inline:4.6.1")
library("mockito-kotlin", "org.mockito.kotlin:mockito-kotlin:4.0.0")
library("mockito-android", "org.mockito:mockito-android:4.6.1")
library("robolectric-robolectric", "org.robolectric", "robolectric").versionRef("robolectric")
library("bouncycastle-bcprov-jdk15on", "org.bouncycastle:bcprov-jdk15on:1.70")
library("bouncycastle-bcpkix-jdk15on", "org.bouncycastle:bcpkix-jdk15on:1.70")
library("hamcrest-hamcrest", "org.hamcrest:hamcrest:2.2")
library("assertj-core", "org.assertj:assertj-core:3.11.1")
library("square-okhttp-mockserver", "com.squareup.okhttp3:mockwebserver:4.12.0")
library("mockk", "io.mockk:mockk:1.13.2")
library("mockk-android", "io.mockk:mockk-android:1.13.2")
library("conscrypt-openjdk-uber", "org.conscrypt:conscrypt-openjdk-uber:2.5.2")
library("diff-utils", "io.github.java-diff-utils:java-diff-utils:4.12")
}
create("lintLibs") {
version("lint", "31.4.0") // Lint version is AGP version + 23.0.0
library("lint-api", "com.android.tools.lint", "lint-api").versionRef("lint")
library("lint-checks", "com.android.tools.lint", "lint-checks").versionRef("lint")
library("lint-tests", "com.android.tools.lint", "lint-tests").versionRef("lint")
}
}
}

View file

@ -0,0 +1,13 @@
# IMPORTANT: After changing a dependency, please run:
# ./gradlew --write-verification-metadata sha256 qa --rerun-tasks
[versions]
androidx-test-ext-junit = "1.1.3"
[libraries]
# Macrobench/Baseline profiles
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-ext-junit" }
espresso-core = "androidx.test.espresso:espresso-core:3.4.0"
uiautomator = "androidx.test.uiautomator:uiautomator:2.2.0"
androidx-benchmark-macro = "androidx.benchmark:benchmark-macro-junit4:1.1.1"
androidx-benchmark-micro = "androidx.benchmark:benchmark-junit4:1.1.0-beta04"

164
gradle/libs.versions.toml Normal file
View file

@ -0,0 +1,164 @@
# IMPORTANT: After changing a dependency, please run:
# ./gradlew --write-verification-metadata sha256 qa --rerun-tasks
[versions]
androidx-appcompat = "1.6.1"
androidx-activity = "1.9.2"
androidx-camera = "1.3.4"
androidx-fragment = "1.8.3"
androidx-lifecycle = "2.8.5"
androidx-media3 = "1.3.1"
androidx-navigation = "2.8.0"
androidx-window = "1.3.0"
glide = "4.15.1"
kotlin = "1.9.20"
libsignal-client = "0.62.0"
mp4parser = "1.9.39"
android-gradle-plugin = "8.4.0"
accompanist = "0.28.0"
nanohttpd = "2.3.1"
[libraries]
# Android Plugins
android-library = { module = "com.android.library:com.android.library.gradle.plugin", version.ref = "android-gradle-plugin" }
android-application = { module = "com.android.application:com.android.application.gradle.plugin", version.ref = "android-gradle-plugin" }
# Compose
androidx-compose-bom = "androidx.compose:compose-bom:2024.09.00"
androidx-compose-material3 = { module = "androidx.compose.material3:material3" }
androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
androidx-compose-ui-tooling-core = { module = "androidx.compose.ui:ui-tooling" }
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }
androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" }
androidx-compose-rxjava3 = "androidx.compose.runtime:runtime-rxjava3:1.4.2"
ktlint-twitter-compose = "com.twitter.compose.rules:ktlint:0.0.26"
# Accompanist
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
accompanist-drawablepainter = "com.google.accompanist:accompanist-drawablepainter:0.36.0"
# Desugaring
android-tools-desugar = "com.android.tools:desugar_jdk_libs:1.1.6"
# Kotlin
kotlin-stdlib-jdk8 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
ktlint = "org.jlleitschuh.gradle:ktlint-gradle:12.1.1"
kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0"
kotlinx-coroutines-core-jvm = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0"
kotlinx-coroutines-play-services = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1"
kotlinx-coroutines-rx3 = "org.jetbrains.kotlinx:kotlinx-coroutines-rx3:1.3.9"
# Android X
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }
androidx-core-ktx = "androidx.core:core-ktx:1.12.0"
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "androidx-fragment" }
androidx-fragment-testing = { module = "androidx.fragment:fragment-testing", version.ref = "androidx-fragment" }
androidx-annotation = "androidx.annotation:annotation:1.4.0"
androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.4"
androidx-window-window = { module = "androidx.window:window", version.ref = "androidx-window" }
androidx-window-java = { module = "androidx.window:window-java", version.ref = "androidx-window" }
androidx-recyclerview = "androidx.recyclerview:recyclerview:1.3.1"
androidx-legacy-support = "androidx.legacy:legacy-support-v13:1.0.0"
androidx-legacy-preference = "androidx.legacy:legacy-preference-v14:1.0.0"
androidx-preference = "androidx.preference:preference:1.0.0"
androidx-gridlayout = "androidx.gridlayout:gridlayout:1.0.0"
androidx-exifinterface = "androidx.exifinterface:exifinterface:1.3.3"
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidx-media3" }
androidx-media3-session = { module = "androidx.media3:media3-session", version.ref = "androidx-media3" }
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidx-media3" }
androidx-navigation-fragment-ktx = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidx-navigation" }
androidx-navigation-ui-ktx = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidx-navigation" }
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" }
androidx-lifecycle-livedata-core = { module = "androidx.lifecycle:lifecycle-livedata", version.ref = "androidx-lifecycle" }
androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidx-lifecycle" }
androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidx-lifecycle" }
androidx-lifecycle-viewmodel-savedstate = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "androidx-lifecycle" }
androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "androidx-lifecycle" }
androidx-lifecycle-reactivestreams-ktx = { module = "androidx.lifecycle:lifecycle-reactivestreams-ktx", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
androidx-camera-core = { module = "androidx.camera:camera-core", version.ref = "androidx-camera" }
androidx-camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "androidx-camera" }
androidx-camera-extensions = { module = "androidx.camera:camera-extensions", version.ref = "androidx-camera" }
androidx-camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "androidx-camera" }
androidx-camera-view = { module = "androidx.camera:camera-view", version.ref = "androidx-camera" }
androidx-concurrent-futures = "androidx.concurrent:concurrent-futures:1.0.0"
androidx-autofill = "androidx.autofill:autofill:1.0.0"
androidx-biometric = "androidx.biometric:biometric:1.1.0"
androidx-sharetarget = "androidx.sharetarget:sharetarget:1.2.0-rc02"
androidx-sqlite = "androidx.sqlite:sqlite:2.1.0"
androidx-profileinstaller = "androidx.profileinstaller:profileinstaller:1.2.2"
androidx-asynclayoutinflater = "androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01"
androidx-asynclayoutinflater-appcompat = "androidx.asynclayoutinflater:asynclayoutinflater-appcompat:1.1.0-alpha01"
androidx-emoji2 = "androidx.emoji2:emoji2:1.4.0"
androidx-documentfile = "androidx.documentfile:documentfile:1.0.0"
android-billing = "com.android.billingclient:billing-ktx:7.0.0"
# Billing
material-material = "com.google.android.material:material:1.8.0"
# Google
google-libphonenumber = "com.googlecode.libphonenumber:libphonenumber:8.13.40"
google-play-services-maps = "com.google.android.gms:play-services-maps:18.2.0"
google-play-services-auth = "com.google.android.gms:play-services-auth:21.0.0"
google-play-services-wallet = "com.google.android.gms:play-services-wallet:19.2.1"
google-zxing-android-integration = "com.google.zxing:android-integration:3.3.0"
google-zxing-core = "com.google.zxing:core:3.4.1"
google-ez-vcard = "com.googlecode.ez-vcard:ez-vcard:0.9.11"
google-jsr305 = "com.google.code.findbugs:jsr305:3.0.2"
google-guava-android = "com.google.guava:guava:30.0-android"
google-flexbox = "com.google.android.flexbox:flexbox:3.0.0"
# Firebase
firebase-messaging = "com.google.firebase:firebase-messaging:23.1.2"
# 1st Party
libsignal-client = { module = "org.signal:libsignal-client", version.ref = "libsignal-client" }
libsignal-android = { module = "org.signal:libsignal-android", version.ref = "libsignal-client" }
signal-aesgcmprovider = "org.signal:aesgcmprovider:0.0.3"
signal-ringrtc = "org.signal:ringrtc-android:2.48.4"
signal-android-database-sqlcipher = "org.signal:sqlcipher-android:4.6.0-S1"
# Third Party
greenrobot-eventbus = "org.greenrobot:eventbus:3.0.0"
jackson-core = "com.fasterxml.jackson.core:jackson-databind:2.9.9.2"
jackson-module-kotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:2.12.0"
square-okhttp3 = "com.squareup.okhttp3:okhttp:4.12.0"
square-okio = "com.squareup.okio:okio:3.6.0"
square-leakcanary = "com.squareup.leakcanary:leakcanary-android:2.7"
rxjava3-rxjava = "io.reactivex.rxjava3:rxjava:3.0.13"
rxjava3-rxandroid = "io.reactivex.rxjava3:rxandroid:3.0.0"
rxjava3-rxkotlin = "io.reactivex.rxjava3:rxkotlin:3.0.1"
rxdogtag = "com.uber.rxdogtag2:rxdogtag:2.0.1"
conscrypt-android = "org.conscrypt:conscrypt-android:2.5.2"
mobilecoin = "com.mobilecoin:android-sdk:6.0.1"
leolin-shortcutbadger = "me.leolin:ShortcutBadger:1.1.22"
emilsjolander-stickylistheaders = "se.emilsjolander:stickylistheaders:2.7.0"
glide-glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" }
glide-ksp = { module = "com.github.bumptech.glide:ksp", version.ref = "glide" }
roundedimageview = "com.makeramen:roundedimageview:2.1.0"
materialish-progress = "com.pnikosis:materialish-progress:1.7"
subsampling-scale-image-view = "com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0"
android-tooltips = "com.tomergoldst.android:tooltips:1.0.6"
stream = "com.annimon:stream:1.1.8"
lottie = "com.airbnb.android:lottie:5.2.0"
lottie-compose = "com.airbnb.android:lottie-compose:6.4.0"
dnsjava = "dnsjava:dnsjava:2.1.9"
nanohttpd-webserver = { module = "org.nanohttpd:nanohttpd-webserver", version.ref = "nanohttpd" }
nanohttpd-websocket = { module = "org.nanohttpd:nanohttpd-websocket", version.ref = "nanohttpd" }
kotlinx-collections-immutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5"
# Can't use the newest version because it hits some weird NoClassDefFoundException
jknack-handlebars = "com.github.jknack:handlebars:4.0.7"
# Mp4Parser
mp4parser-isoparser = { module = "org.mp4parser:isoparser", version.ref = "mp4parser" }
mp4parser-streaming = { module = "org.mp4parser:streaming", version.ref = "mp4parser" }
mp4parser-muxer = { module = "org.mp4parser:muxer", version.ref = "mp4parser" }
[bundles]
media3 = ["androidx-media3-exoplayer", "androidx-media3-session", "androidx-media3-ui"]
mp4parser = ["mp4parser-isoparser", "mp4parser-streaming", "mp4parser-muxer"]

View file

@ -0,0 +1,10 @@
# IMPORTANT: After changing a dependency, please run:
# ./gradlew --write-verification-metadata sha256 qa --rerun-tasks
[versions]
lint = "31.4.0"
[libraries]
lint-api = { module = "com.android.tools.lint:lint-api", version.ref = "lint" }
lint-checks = { module = "com.android.tools.lint:lint-checks", version.ref = "lint" }
lint-tests = { module = "com.android.tools.lint:lint-tests", version.ref = "lint" }

View file

@ -0,0 +1,33 @@
# IMPORTANT: After changing a dependency, please run:
# ./gradlew --write-verification-metadata sha256 qa --rerun-tasks
[versions]
androidx-test = "1.5.0"
androidx-test-ext-junit = "1.1.5"
robolectric = "4.10.3"
espresso = "3.4.0"
[libraries]
junit-junit = "junit:junit:4.13.2"
androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test" }
androidx-test-core-ktx = { module = "androidx.test:core-ktx", version.ref = "androidx-test" }
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-ext-junit" }
androidx-test-ext-junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "androidx-test-ext-junit" }
androidx-test-orchestrator = "androidx.test:orchestrator:1.4.1"
androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidx-test" }
espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" }
kotlinx-coroutines-test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0"
mockito-core = "org.mockito:mockito-inline:4.6.1"
mockito-kotlin = "org.mockito.kotlin:mockito-kotlin:4.0.0"
mockito-android = "org.mockito:mockito-android:4.6.1"
robolectric-robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
bouncycastle-bcprov-jdk15on = "org.bouncycastle:bcprov-jdk15on:1.70"
bouncycastle-bcpkix-jdk15on = "org.bouncycastle:bcpkix-jdk15on:1.70"
hamcrest-hamcrest = "org.hamcrest:hamcrest:2.2"
assertj-core = "org.assertj:assertj-core:3.11.1"
square-okhttp-mockserver = "com.squareup.okhttp3:mockwebserver:4.12.0"
mockk = "io.mockk:mockk:1.13.2"
mockk-android = "io.mockk:mockk-android:1.13.2"
conscrypt-openjdk-uber = "org.conscrypt:conscrypt-openjdk-uber:2.5.2"
diff-utils = "io.github.java-diff-utils:java-diff-utils:4.12"

View file

@ -22,6 +22,18 @@ dependencyResolutionManagement {
url = uri("https://dl.cloudsmith.io/qxAgwaeEE1vN8aLU/mobilecoin/mobilecoin/maven/")
}
}
versionCatalogs {
// libs.versions.toml is automatically registered.
create("benchmarkLibs") {
from(files("gradle/benchmark-libs.versions.toml"))
}
create("testLibs") {
from(files("gradle/test-libs.versions.toml"))
}
create("lintLibs") {
from(files("gradle/lint-libs.versions.toml"))
}
}
}
// To build libsignal from source, set the libsignalClientPath property in gradle.properties.
@ -91,5 +103,3 @@ project(":video").projectDir = file("video/lib")
project(":video-app").projectDir = file("video/app")
rootProject.name = "Signal"
apply(from = "dependencies.gradle.kts")