diff --git a/build-logic/settings.gradle b/build-logic/settings.gradle deleted file mode 100644 index dc0507652e..0000000000 --- a/build-logic/settings.gradle +++ /dev/null @@ -1,23 +0,0 @@ -pluginManagement { - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -rootProject.name = "build-logic" - -include ':plugins' -include ':tools' - -apply from: '../dependencies.gradle' diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts new file mode 100644 index 0000000000..08b8672147 --- /dev/null +++ b/build-logic/settings.gradle.kts @@ -0,0 +1,23 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +rootProject.name = "build-logic" + +include(":plugins") +include(":tools") + +apply(from = "../dependencies.gradle.kts") diff --git a/dependencies.gradle b/dependencies.gradle deleted file mode 100644 index 4f402ce39b..0000000000 --- a/dependencies.gradle +++ /dev/null @@ -1,212 +0,0 @@ -// IMPORTANT: After changing a dependency, please run: -// ./gradlew --write-verification-metadata sha256 qa --rerun-tasks - -dependencyResolutionManagement { - versionCatalogs { - libs { - version('androidx-appcompat', '1.6.1') - version('androidx-activity', '1.7.2') - version('androidx-camera', '1.3.0-rc01') - version('androidx-fragment', '1.6.1') - version('androidx-lifecycle', '2.6.1') - version('androidx-media3', '1.1.0') - version('androidx-navigation', '2.6.0') - version('androidx-window', '1.0.0') - version('exoplayer', '2.19.0') - version('glide', '4.15.1') - version('kotlin', '1.8.10') - version('libsignal-client', '0.32.1') - version('mp4parser', '1.9.39') - version('android-gradle-plugin', '8.0.2') - 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:2023.08.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') - - // Desugaring - library('android-tools-desugar', 'com.android.tools:desugar_jdk_libs:1.1.5') - - // 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:11.4.2') - - // 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-multidex', 'androidx.multidex:multidex:2.0.1') - 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-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-camera-core', 'androidx.camera', 'camera-core').versionRef('androidx-camera') - library('androidx-camera-camera2', 'androidx.camera', 'camera-camera2').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') - - // 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.23') - library('google-play-services-maps', 'com.google.android.gms:play-services-maps:18.1.0') - library('google-play-services-auth', 'com.google.android.gms:play-services-auth:20.3.0') - library('google-play-services-wallet', 'com.google.android.gms:play-services-wallet:19.1.0') - 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', ['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.34.4') - library('signal-android-database-sqlcipher', 'org.signal:sqlcipher-android:4.5.4-S2') - - // 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:3.12.13') - library('square-okio', 'com.squareup.okio:okio:3.0.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:5.0.1') - library('leolin-shortcutbadger', 'me.leolin:ShortcutBadger:1.1.22') - library('emilsjolander-stickylistheaders', 'se.emilsjolander:stickylistheaders:2.7.0') - library('apache-httpclient-android', 'org.apache.httpcomponents:httpclient-android:4.3.5') - library('glide-glide', 'com.github.bumptech.glide', 'glide').versionRef('glide') - library('glide-compiler', 'com.github.bumptech.glide', 'compiler').versionRef('glide') - library('roundedimageview', 'com.makeramen:roundedimageview:2.1.0') - library('materialish-progress', 'com.pnikosis:materialish-progress:1.5') - library('subsampling-scale-image-view', 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0') - library('android-tooltips', 'com.tomergoldst.android:tooltips:1.0.6') - library('android-smsmms', 'com.klinkerapps:android-smsmms:4.0.1') - library('stream', 'com.annimon:stream:1.1.8') - library('lottie', 'com.airbnb.android:lottie:5.2.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') - library('kotlinx-collections-immutable', 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5') - - // 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', ['mp4parser-isoparser', 'mp4parser-streaming', 'mp4parser-muxer']) - } - - 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') - } - - testLibs { - version('androidx-test', '1.4.0') - version('androidx-test-ext-junit', '1.1.1') - version('robolectric', '4.10.3') - - 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:3.4.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('robolectric-shadows-multidex', 'org.robolectric', 'shadows-multidex').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:3.12.13') - 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') - } - - lintLibs { - version('lint', '30.2.2') - - 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') - } - } -} diff --git a/dependencies.gradle.kts b/dependencies.gradle.kts new file mode 100644 index 0000000000..9e5ca3bbdd --- /dev/null +++ b/dependencies.gradle.kts @@ -0,0 +1,212 @@ +// 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.7.2") + version("androidx-camera", "1.3.0-rc01") + version("androidx-fragment", "1.6.1") + version("androidx-lifecycle", "2.6.1") + version("androidx-media3", "1.1.0") + version("androidx-navigation", "2.6.0") + version("androidx-window", "1.0.0") + version("exoplayer", "2.19.0") + version("glide", "4.15.1") + version("kotlin", "1.8.10") + version("libsignal-client", "0.32.1") + version("mp4parser", "1.9.39") + version("android-gradle-plugin", "8.0.2") + 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:2023.08.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") + + // Desugaring + library("android-tools-desugar", "com.android.tools:desugar_jdk_libs:1.1.5") + + // 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:11.4.2") + + // 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-multidex", "androidx.multidex:multidex:2.0.1") + 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-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-camera-core", "androidx.camera", "camera-core").versionRef("androidx-camera") + library("androidx-camera-camera2", "androidx.camera", "camera-camera2").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") + + // 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.23") + library("google-play-services-maps", "com.google.android.gms:play-services-maps:18.1.0") + library("google-play-services-auth", "com.google.android.gms:play-services-auth:20.3.0") + library("google-play-services-wallet", "com.google.android.gms:play-services-wallet:19.1.0") + 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.34.4") + library("signal-android-database-sqlcipher", "org.signal:sqlcipher-android:4.5.4-S2") + + // 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:3.12.13") + library("square-okio", "com.squareup.okio:okio:3.0.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:5.0.1") + library("leolin-shortcutbadger", "me.leolin:ShortcutBadger:1.1.22") + library("emilsjolander-stickylistheaders", "se.emilsjolander:stickylistheaders:2.7.0") + library("apache-httpclient-android", "org.apache.httpcomponents:httpclient-android:4.3.5") + library("glide-glide", "com.github.bumptech.glide", "glide").versionRef("glide") + library("glide-compiler", "com.github.bumptech.glide", "compiler").versionRef("glide") + library("roundedimageview", "com.makeramen:roundedimageview:2.1.0") + library("materialish-progress", "com.pnikosis:materialish-progress:1.5") + library("subsampling-scale-image-view", "com.davemorrissey.labs:subsampling-scale-image-view:3.10.0") + library("android-tooltips", "com.tomergoldst.android:tooltips:1.0.6") + library("android-smsmms", "com.klinkerapps:android-smsmms:4.0.1") + library("stream", "com.annimon:stream:1.1.8") + library("lottie", "com.airbnb.android:lottie:5.2.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") + library("kotlinx-collections-immutable", "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5") + + // 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.4.0") + version("androidx-test-ext-junit", "1.1.1") + version("robolectric", "4.10.3") + + 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:3.4.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("robolectric-shadows-multidex", "org.robolectric", "shadows-multidex").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:3.12.13") + 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") + } + + create("lintLibs") { + version("lint", "30.2.2") + + 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") + } + } +} diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 705c94a677..0000000000 --- a/settings.gradle +++ /dev/null @@ -1,97 +0,0 @@ -pluginManagement { - repositories { - google() - mavenCentral() - gradlePluginPortal() - } - includeBuild("build-logic") -} -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - google() - mavenCentral() - mavenLocal() - maven { - url "https://raw.githubusercontent.com/signalapp/maven/master/sqlcipher/release/" - content { - includeGroupByRegex "org\\.signal.*" - } - } - maven { - url "https://dl.cloudsmith.io/qxAgwaeEE1vN8aLU/mobilecoin/mobilecoin/maven/" - } - jcenter { - content { - includeVersion "mobi.upod", "time-duration-picker", "1.1.3" - } - } - } -} - -include ':app' -include ':libsignal-service' -include ':lintchecks' -include ':paging' -include ':paging-app' -include ':core-util' -include ':core-util-jvm' -include ':glide-config' -include ':device-transfer' -include ':device-transfer-app' -include ':image-editor' -include ':image-editor-app' -include ':sms-exporter' -include ':sms-exporter-app' -include ':donations' -include ':donations-app' -include ':spinner' -include ':spinner-app' -include ':contacts' -include ':contacts-app' -include ':qr' -include ':qr-app' -include ':sticky-header-grid' -include ':photoview' -include ':core-ui' -include ':benchmark' -include ':microbenchmark' -include ':video' -include ':video-app' -include ':glide-webp' -include ':glide-webp-app' - -project(':app').name = 'Signal-Android' -project(':paging').projectDir = file('paging/lib') -project(':paging-app').projectDir = file('paging/app') - -project(':device-transfer').projectDir = file('device-transfer/lib') -project(':device-transfer-app').projectDir = file('device-transfer/app') - -project(':image-editor').projectDir = file('image-editor/lib') -project(':image-editor-app').projectDir = file('image-editor/app') - -project(':sms-exporter').projectDir = file('sms-exporter/lib') -project(':sms-exporter-app').projectDir = file('sms-exporter/app') - -project(':donations').projectDir = file('donations/lib') -project(':donations-app').projectDir = file('donations/app') - -project(':spinner').projectDir = file('spinner/lib') -project(':spinner-app').projectDir = file('spinner/app') - -project(':contacts').projectDir = file('contacts/lib') -project(':contacts-app').projectDir = file('contacts/app') - -project(':qr').projectDir = file('qr/lib') -project(':qr-app').projectDir = file('qr/app') - -project(':video').projectDir = file('video/lib') -project(':video-app').projectDir = file('video/app') - -project(':glide-webp').projectDir = file('glide-webp/lib') -project(':glide-webp-app').projectDir = file('glide-webp/app') - -rootProject.name='Signal' - -apply from: 'dependencies.gradle' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000000..a5ba6866b2 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,97 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } + includeBuild("build-logic") +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + mavenLocal() + maven { + url = uri("https://raw.githubusercontent.com/signalapp/maven/master/sqlcipher/release/") + content { + includeGroupByRegex("org\\.signal.*") + } + } + maven { + url = uri("https://dl.cloudsmith.io/qxAgwaeEE1vN8aLU/mobilecoin/mobilecoin/maven/") + } + jcenter { + content { + includeVersion("mobi.upod", "time-duration-picker", "1.1.3") + } + } + } +} + +include(":app") +include(":libsignal-service") +include(":lintchecks") +include(":paging") +include(":paging-app") +include(":core-util") +include(":core-util-jvm") +include(":glide-config") +include(":device-transfer") +include(":device-transfer-app") +include(":image-editor") +include(":image-editor-app") +include(":sms-exporter") +include(":sms-exporter-app") +include(":donations") +include(":donations-app") +include(":spinner") +include(":spinner-app") +include(":contacts") +include(":contacts-app") +include(":qr") +include(":qr-app") +include(":sticky-header-grid") +include(":photoview") +include(":core-ui") +include(":benchmark") +include(":microbenchmark") +include(":video") +include(":video-app") +include(":glide-webp") +include(":glide-webp-app") + +project(":app").name = "Signal-Android" +project(":paging").projectDir = file("paging/lib") +project(":paging-app").projectDir = file("paging/app") + +project(":device-transfer").projectDir = file("device-transfer/lib") +project(":device-transfer-app").projectDir = file("device-transfer/app") + +project(":image-editor").projectDir = file("image-editor/lib") +project(":image-editor-app").projectDir = file("image-editor/app") + +project(":sms-exporter").projectDir = file("sms-exporter/lib") +project(":sms-exporter-app").projectDir = file("sms-exporter/app") + +project(":donations").projectDir = file("donations/lib") +project(":donations-app").projectDir = file("donations/app") + +project(":spinner").projectDir = file("spinner/lib") +project(":spinner-app").projectDir = file("spinner/app") + +project(":contacts").projectDir = file("contacts/lib") +project(":contacts-app").projectDir = file("contacts/app") + +project(":qr").projectDir = file("qr/lib") +project(":qr-app").projectDir = file("qr/app") + +project(":video").projectDir = file("video/lib") +project(":video-app").projectDir = file("video/app") + +project(":glide-webp").projectDir = file("glide-webp/lib") +project(":glide-webp-app").projectDir = file("glide-webp/app") + +rootProject.name = "Signal" + +apply(from = "dependencies.gradle.kts")