From f1077efc17a72992d18a402ab1c935b4357e38cd Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Sun, 11 Dec 2022 12:49:48 +0000 Subject: [PATCH] convert to version catalog --- app/build.gradle | 18 ++- build.gradle | 132 ++---------------- chat-engine | 2 +- core/build.gradle | 12 +- dependencies.gradle | 84 +---------- design-library/build.gradle | 8 +- domains/android/compose-core/build.gradle | 4 +- domains/android/core/build.gradle | 4 +- domains/android/imageloader/build.gradle | 6 +- domains/android/push/build.gradle | 10 +- domains/android/stub/build.gradle | 4 +- domains/android/tracking/build.gradle | 4 +- domains/android/viewmodel-stub/build.gradle | 4 +- domains/android/viewmodel/build.gradle | 8 +- domains/android/work/build.gradle | 4 +- .../firebase/crashlytics-noop/build.gradle | 4 +- domains/firebase/crashlytics/build.gradle | 6 +- domains/firebase/messaging-noop/build.gradle | 4 +- domains/firebase/messaging/build.gradle | 6 +- domains/store/build.gradle | 11 +- features/directory/build.gradle | 6 +- features/home/build.gradle | 6 +- features/login/build.gradle | 4 +- features/messenger/build.gradle | 8 +- features/navigator/build.gradle | 6 +- features/notifications/build.gradle | 6 +- features/profile/build.gradle | 4 +- features/settings/build.gradle | 4 +- features/share-entry/build.gradle | 4 +- features/verification/build.gradle | 4 +- gradle/libs.versions.toml | 59 ++++++++ screen-state | 2 +- settings.gradle | 10 +- 33 files changed, 193 insertions(+), 265 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/app/build.gradle b/app/build.gradle index 419e3ba..5a8a4d6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,7 @@ plugins { - id 'com.android.application' - id 'kotlin-android' + id "st-application-conventions" } -applyCommonAndroidParameters(project) applyCrashlyticsIfRelease(project) android { @@ -70,7 +68,7 @@ if (isDebugBuild) { } dependencies { - coreLibraryDesugaring Dependencies.google.jdkLibs + coreLibraryDesugaring libs.android.desugar implementation project(":features:home") implementation project(":features:directory") @@ -98,11 +96,11 @@ dependencies { implementation "chat-engine:matrix-chat-engine" implementation "chat-engine.matrix:store" - implementation Dependencies.google.androidxComposeUi - implementation Dependencies.mavenCentral.ktorAndroid - implementation Dependencies.mavenCentral.sqldelightAndroid - implementation Dependencies.mavenCentral.matrixOlm + implementation libs.compose.ui + implementation libs.ktor.android + implementation libs.sqldelight.android + implementation libs.matrix.olm - implementation Dependencies.mavenCentral.kotlinSerializationJson - debugImplementation Dependencies.mavenCentral.leakCanary + implementation libs.kotlin.serialization + debugImplementation libs.leakcanary } diff --git a/build.gradle b/build.gradle index 944d6f1..45e77b8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,6 @@ -buildscript { - apply from: "dependencies.gradle" - - repositories { - Dependencies._repositories.call(it) - } - dependencies { - classpath Dependencies.google.androidGradlePlugin - classpath Dependencies.mavenCentral.kotlinGradlePlugin - classpath Dependencies.mavenCentral.sqldelightGradlePlugin - classpath Dependencies.mavenCentral.kotlinSerializationGradlePlugin - classpath Dependencies.google.firebaseCrashlyticsPlugin - } +plugins { +// alias(libs.plugins.android.application) apply false +// alias(libs.plugins.android.library) apply false } def launchTask = getGradle() @@ -18,107 +8,19 @@ def launchTask = getGradle() .getTaskRequests() .toString() .toLowerCase() -def isReleaseBuild = launchTask.contains("release") +def isReleaseBuild = launchTask.contains("bundleRelease") || launchTask.contains("assembleRelease") ext.isDebugBuild = !isReleaseBuild -subprojects { - tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { - kotlinOptions { - jvmTarget = "1.8" - freeCompilerArgs = [ - '-opt-in=kotlin.contracts.ExperimentalContracts', - '-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi', - ] - } - } -} - task clean(type: Delete) { delete rootProject.buildDir } -ext.applyMatrixServiceModule = { project -> - project.apply plugin: 'kotlin' - project.apply plugin: 'org.jetbrains.kotlin.plugin.serialization' - - def dependencies = project.dependencies - - dependencies.api project.project(":matrix:matrix") - dependencies.api project.project(":matrix:common") - dependencies.implementation project.project(":matrix:matrix-http") - dependencies.implementation Dependencies.mavenCentral.kotlinSerializationJson -} - -ext.applyLibraryPlugins = { project -> - project.apply plugin: 'com.android.library' - project.apply plugin: 'kotlin-android' -} - -ext.androidSdkVersion = 33 - -ext.applyCommonAndroidParameters = { project -> - def android = project.android - android.compileSdk androidSdkVersion - android.compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - incremental = true - } - android.defaultConfig { - minSdkVersion 24 - targetSdkVersion androidSdkVersion - } -} - -ext.applyLibraryModuleOptimisations = { project -> - project.android { - variantFilter { variant -> - if (variant.name == "debug") { - variant.ignore = true - } - } - - buildFeatures { - buildConfig = false - dataBinding = false - aidl = false - renderScript = false - resValues = false - shaders = false - viewBinding = false - } - } -} - -ext.applyCompose = { project -> - def dependencies = project.dependencies - - dependencies.implementation Dependencies.google.androidxComposeUi - dependencies.implementation Dependencies.google.androidxComposeFoundation - dependencies.implementation Dependencies.google.androidxComposeMaterial - dependencies.implementation Dependencies.google.androidxComposeIconsExtended - dependencies.implementation Dependencies.google.androidxActivityCompose - - def android = project.android - android.buildFeatures.compose = true - android.composeOptions { - kotlinCompilerExtensionVersion = Dependencies.google.kotlinCompilerExtensionVersion - } -} - -ext.applyAndroidComposeLibraryModule = { project -> - applyAndroidLibraryModule(project) - applyCompose(project) -} - -ext.applyAndroidLibraryModule = { project -> - applyLibraryPlugins(project) - applyCommonAndroidParameters(project) - applyLibraryModuleOptimisations(project) -} - ext.applyCrashlyticsIfRelease = { project -> + println("is release $isReleaseBuild") + println("is foss ${isFoss()}") if (isReleaseBuild && !isFoss()) { + println("run craslytics") + project.apply plugin: 'com.google.firebase.crashlytics' project.afterEvaluate { project.tasks.withType(com.google.firebase.crashlytics.buildtools.gradle.tasks.UploadMappingFileTask).configureEach { @@ -129,20 +31,16 @@ ext.applyCrashlyticsIfRelease = { project -> } ext.kotlinTest = { dependencies -> - dependencies.testImplementation Dependencies.mavenCentral.kluent - dependencies.testImplementation Dependencies.mavenCentral.kotlinTest - dependencies.testImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.7.20" - dependencies.testImplementation Dependencies.mavenCentral.mockk - dependencies.testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4' - - dependencies.testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1' - dependencies.testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1' + dependencies.testImplementation libs.kluent + dependencies.testImplementation libs.kotlin.test + dependencies.testImplementation libs.mockk + dependencies.testImplementation libs.kotlin.coroutines.test } ext.kotlinFixtures = { dependencies -> - dependencies.testFixturesImplementation Dependencies.mavenCentral.mockk - dependencies.testFixturesImplementation Dependencies.mavenCentral.kluent - dependencies.testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore + dependencies.testFixturesImplementation libs.mockk + dependencies.testFixturesImplementation libs.kluent + dependencies.testFixturesImplementation libs.kotlin.coroutines } ext.androidImportFixturesWorkaround = { project, fixtures -> diff --git a/chat-engine b/chat-engine index 0439dc6..3c8d06a 160000 --- a/chat-engine +++ b/chat-engine @@ -1 +1 @@ -Subproject commit 0439dc648c91af643dd480b359ce48bd11700d89 +Subproject commit 3c8d06ad1c22bbca69718e9b9eef3c053b1a7c2d diff --git a/core/build.gradle b/core/build.gradle index b573f32..6cb67ca 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,12 +1,12 @@ plugins { - id 'kotlin' + alias libs.plugins.kotlin id 'java-test-fixtures' } dependencies { - api Dependencies.mavenCentral.kotlinCoroutinesCore - testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore - testFixturesImplementation Dependencies.mavenCentral.kluent - testFixturesImplementation Dependencies.mavenCentral.mockk - testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesTest + api libs.kotlin.coroutines + testFixturesImplementation libs.kotlin.coroutines + testFixturesImplementation libs.kluent + testFixturesImplementation libs.mockk + testFixturesImplementation libs.kotlin.coroutines.test } \ No newline at end of file diff --git a/dependencies.gradle b/dependencies.gradle index a4ec37d..bc6db05 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,8 +1,6 @@ -ext.Dependencies = new DependenciesContainer() - -ext.Dependencies.with { - _repositories = { repositories -> - repositories.google { +ext.applyRepositories = { dependencyResolutionManagement -> + dependencyResolutionManagement.repositories { + google { content { includeGroupByRegex "com\\.android.*" includeGroupByRegex "com\\.google.*" @@ -10,14 +8,14 @@ ext.Dependencies.with { } } - repositories.maven { + maven { url 'https://jitpack.io' content { includeGroup "com.github.UnifiedPush" } } - repositories.mavenCentral { + mavenCentral { content { includeGroupByRegex "org\\.jetbrains.*" includeGroupByRegex "com\\.google.*" @@ -96,76 +94,4 @@ ext.Dependencies.with { } } } - - def kotlinVer = "1.7.20" - def sqldelightVer = "1.5.4" - def composeVer = "1.2.1" - def ktorVer = "2.1.3" - - google = new DependenciesContainer() - google.with { - androidGradlePlugin = "com.android.tools.build:gradle:7.3.1" - - androidxComposeUi = "androidx.compose.ui:ui:${composeVer}" - androidxComposeFoundation = "androidx.compose.foundation:foundation:${composeVer}" - androidxComposeMaterial = "androidx.compose.material3:material3:1.0.0-rc01" - androidxComposeIconsExtended = "androidx.compose.material:material-icons-extended:${composeVer}" - androidxActivityCompose = "androidx.activity:activity-compose:1.6.0" - kotlinCompilerExtensionVersion = "1.3.2" - - firebaseCrashlyticsPlugin = "com.google.firebase:firebase-crashlytics-gradle:2.9.2" - firebaseBom = "com.google.firebase:firebase-bom:31.0.1" - - jdkLibs = "com.android.tools:desugar_jdk_libs:1.1.5" - } - - mavenCentral = new DependenciesContainer() - mavenCentral.with { - kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVer}" - kotlinSerializationGradlePlugin = "org.jetbrains.kotlin:kotlin-serialization:${kotlinVer}" - kotlinSerializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1" - kotlinCoroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" - kotlinCoroutinesTest = 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4' - kotlinTest = "org.jetbrains.kotlin:kotlin-test-junit:${kotlinVer}" - - sqldelightGradlePlugin = "com.squareup.sqldelight:gradle-plugin:${sqldelightVer}" - sqldelightAndroid = "com.squareup.sqldelight:android-driver:${sqldelightVer}" - sqldelightInMemory = "com.squareup.sqldelight:sqlite-driver:${sqldelightVer}" - - leakCanary = 'com.squareup.leakcanary:leakcanary-android:2.10' - - ktorAndroid = "io.ktor:ktor-client-android:${ktorVer}" - - coil = "io.coil-kt:coil-compose:2.2.2" - accompanistSystemuicontroller = "com.google.accompanist:accompanist-systemuicontroller:0.27.1" - - junit = "juniFt:junit:4.13.2" - kluent = "org.amshove.kluent:kluent:1.72" - mockk = 'io.mockk:mockk:1.13.2' - - matrixOlm = "org.matrix.android:olm-sdk:3.2.12" - } - - jitPack = new DependenciesContainer() - jitPack.with { - unifiedPush = "com.github.UnifiedPush:android-connector:2.0.1" - } - } - -class DependenciesContainer extends GroovyObjectSupport { - - private final Map storage = new HashMap(); - - @Override - Object getProperty(String name) { - return storage.get(name); - } - - @Override - void setProperty(String name, Object newValue) { - storage.put(name, newValue); - } -} - - diff --git a/design-library/build.gradle b/design-library/build.gradle index 578435a..c266d21 100644 --- a/design-library/build.gradle +++ b/design-library/build.gradle @@ -1,7 +1,9 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-android-compose-library-conventions" +} dependencies { implementation project(":core") - implementation Dependencies.mavenCentral.coil - implementation Dependencies.mavenCentral.accompanistSystemuicontroller + implementation libs.compose.coil + implementation libs.accompanist.systemuicontroller } \ No newline at end of file diff --git a/domains/android/compose-core/build.gradle b/domains/android/compose-core/build.gradle index e04cf9f..a16dc93 100644 --- a/domains/android/compose-core/build.gradle +++ b/domains/android/compose-core/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-android-compose-library-conventions" +} dependencies { implementation project(":core") diff --git a/domains/android/core/build.gradle b/domains/android/core/build.gradle index 6a11a06..5da881b 100644 --- a/domains/android/core/build.gradle +++ b/domains/android/core/build.gradle @@ -1,4 +1,6 @@ -plugins { id 'kotlin' } +plugins { + alias libs.plugins.kotlin +} dependencies { compileOnly project(":domains:android:stub") diff --git a/domains/android/imageloader/build.gradle b/domains/android/imageloader/build.gradle index 45821be..da7037a 100644 --- a/domains/android/imageloader/build.gradle +++ b/domains/android/imageloader/build.gradle @@ -1,6 +1,8 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation project(":core") - implementation Dependencies.mavenCentral.coil + implementation libs.compose.coil } diff --git a/domains/android/push/build.gradle b/domains/android/push/build.gradle index d2f9b95..3fa616d 100644 --- a/domains/android/push/build.gradle +++ b/domains/android/push/build.gradle @@ -1,5 +1,7 @@ -applyAndroidLibraryModule(project) -apply plugin: "org.jetbrains.kotlin.plugin.serialization" +plugins { + id "st-android-library-conventions" + alias libs.plugins.kotlin.serialization +} dependencies { implementation "chat-engine:chat-engine" @@ -9,8 +11,8 @@ dependencies { firebase(it, "messaging") - implementation Dependencies.mavenCentral.kotlinSerializationJson - implementation Dependencies.jitPack.unifiedPush + implementation libs.kotlin.serialization + implementation libs.unifiedpush kotlinTest(it) testImplementation 'chat-engine:chat-engine-test' diff --git a/domains/android/stub/build.gradle b/domains/android/stub/build.gradle index 4a7ad4a..f2a5b8d 100644 --- a/domains/android/stub/build.gradle +++ b/domains/android/stub/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'kotlin' + alias libs.plugins.kotlin id 'java-test-fixtures' } @@ -12,7 +12,7 @@ if (localProperties.exists()) { } dependencies { - def androidVer = androidSdkVersion + def androidVer = 33 api files("${properties.getProperty("sdk.dir")}/platforms/android-${androidVer}/android.jar") kotlinFixtures(it) diff --git a/domains/android/tracking/build.gradle b/domains/android/tracking/build.gradle index 25e3ca2..793ba27 100644 --- a/domains/android/tracking/build.gradle +++ b/domains/android/tracking/build.gradle @@ -1,4 +1,6 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation project(':core') diff --git a/domains/android/viewmodel-stub/build.gradle b/domains/android/viewmodel-stub/build.gradle index 8ae4bae..23723ec 100644 --- a/domains/android/viewmodel-stub/build.gradle +++ b/domains/android/viewmodel-stub/build.gradle @@ -1 +1,3 @@ -plugins { id 'kotlin' } +plugins { + alias libs.plugins.kotlin +} diff --git a/domains/android/viewmodel/build.gradle b/domains/android/viewmodel/build.gradle index c3cce48..5a4f375 100644 --- a/domains/android/viewmodel/build.gradle +++ b/domains/android/viewmodel/build.gradle @@ -1,15 +1,15 @@ plugins { - id 'kotlin' + alias libs.plugins.kotlin id 'java-test-fixtures' } dependencies { compileOnly project(":domains:android:viewmodel-stub") - implementation Dependencies.mavenCentral.kotlinCoroutinesCore + implementation libs.kotlin.coroutines kotlinFixtures(it) - testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore - testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesTest + testFixturesImplementation libs.kotlin.coroutines + testFixturesImplementation libs.kotlin.coroutines.test testFixturesImplementation testFixtures(project(":core")) testFixturesCompileOnly project(":domains:android:viewmodel-stub") } \ No newline at end of file diff --git a/domains/android/work/build.gradle b/domains/android/work/build.gradle index ee78269..9b21339 100644 --- a/domains/android/work/build.gradle +++ b/domains/android/work/build.gradle @@ -1,4 +1,6 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation project(':core') diff --git a/domains/firebase/crashlytics-noop/build.gradle b/domains/firebase/crashlytics-noop/build.gradle index 132fe20..1b34c7d 100644 --- a/domains/firebase/crashlytics-noop/build.gradle +++ b/domains/firebase/crashlytics-noop/build.gradle @@ -1,4 +1,6 @@ -plugins { id 'kotlin' } +plugins { + alias libs.plugins.kotlin +} dependencies { implementation project(':core') diff --git a/domains/firebase/crashlytics/build.gradle b/domains/firebase/crashlytics/build.gradle index cbb5990..7b968a0 100644 --- a/domains/firebase/crashlytics/build.gradle +++ b/domains/firebase/crashlytics/build.gradle @@ -1,7 +1,9 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation project(':core') - implementation platform(Dependencies.google.firebaseBom) + implementation platform(libs.firebase.bom) implementation 'com.google.firebase:firebase-crashlytics' } diff --git a/domains/firebase/messaging-noop/build.gradle b/domains/firebase/messaging-noop/build.gradle index 6ed2375..3a564a9 100644 --- a/domains/firebase/messaging-noop/build.gradle +++ b/domains/firebase/messaging-noop/build.gradle @@ -1,4 +1,6 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation project(':core') diff --git a/domains/firebase/messaging/build.gradle b/domains/firebase/messaging/build.gradle index f768b98..bcf36f6 100644 --- a/domains/firebase/messaging/build.gradle +++ b/domains/firebase/messaging/build.gradle @@ -1,9 +1,11 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation project(':core') implementation project(':domains:android:core') implementation "chat-engine:chat-engine" - implementation platform('com.google.firebase:firebase-bom:29.0.3') + implementation platform(libs.firebase.bom) implementation 'com.google.firebase:firebase-messaging' } diff --git a/domains/store/build.gradle b/domains/store/build.gradle index 8abe3e9..88e1673 100644 --- a/domains/store/build.gradle +++ b/domains/store/build.gradle @@ -1,7 +1,7 @@ plugins { - id 'kotlin' - id 'com.squareup.sqldelight' - id 'org.jetbrains.kotlin.plugin.serialization' + alias libs.plugins.kotlin + alias libs.plugins.kotlin.serialization + alias libs.plugins.sqldelight id 'java-test-fixtures' } @@ -15,9 +15,8 @@ sqldelight { dependencies { implementation project(":core") implementation "chat-engine:chat-engine" - implementation Dependencies.mavenCentral.kotlinSerializationJson - implementation Dependencies.mavenCentral.kotlinCoroutinesCore - implementation "com.squareup.sqldelight:coroutines-extensions:1.5.4" + implementation libs.kotlin.serialization + implementation libs.sqldelight.extensions kotlinFixtures(it) testImplementation(testFixtures(project(":core"))) diff --git a/features/directory/build.gradle b/features/directory/build.gradle index 5b34ce1..2291b1b 100644 --- a/features/directory/build.gradle +++ b/features/directory/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation project(":domains:android:compose-core") @@ -7,7 +9,7 @@ dependencies { implementation project(":features:messenger") implementation project(":core") implementation project(":design-library") - implementation Dependencies.mavenCentral.coil + implementation libs.compose.coil kotlinTest(it) diff --git a/features/home/build.gradle b/features/home/build.gradle index e45d07a..d08f22c 100644 --- a/features/home/build.gradle +++ b/features/home/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation "chat-engine:chat-engine" @@ -12,5 +14,5 @@ dependencies { implementation 'screen-state:screen-android' implementation project(":core") implementation project(":design-library") - implementation Dependencies.mavenCentral.coil + implementation libs.compose.coil } \ No newline at end of file diff --git a/features/login/build.gradle b/features/login/build.gradle index 848ec0f..9e909f8 100644 --- a/features/login/build.gradle +++ b/features/login/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation "chat-engine:chat-engine" diff --git a/features/messenger/build.gradle b/features/messenger/build.gradle index 2c4a0e3..d242f8a 100644 --- a/features/messenger/build.gradle +++ b/features/messenger/build.gradle @@ -1,5 +1,7 @@ -applyAndroidComposeLibraryModule(project) -apply plugin: 'kotlin-parcelize' +plugins { + id "st-feature-conventions" + alias libs.plugins.kotlin.parcelize +} dependencies { implementation "chat-engine:chat-engine" @@ -10,7 +12,7 @@ dependencies { implementation project(":core") implementation project(":features:navigator") implementation project(":design-library") - implementation Dependencies.mavenCentral.coil + implementation libs.compose.coil kotlinTest(it) diff --git a/features/navigator/build.gradle b/features/navigator/build.gradle index 1aee7ce..ed63e6a 100644 --- a/features/navigator/build.gradle +++ b/features/navigator/build.gradle @@ -1,5 +1,7 @@ -applyAndroidLibraryModule(project) -apply plugin: 'kotlin-parcelize' +plugins { + id "st-feature-conventions" + alias libs.plugins.kotlin.parcelize +} dependencies { compileOnly project(":domains:android:stub") diff --git a/features/notifications/build.gradle b/features/notifications/build.gradle index 58fa4b4..21b02a1 100644 --- a/features/notifications/build.gradle +++ b/features/notifications/build.gradle @@ -1,4 +1,6 @@ -applyAndroidLibraryModule(project) +plugins { + id "st-android-library-conventions" +} dependencies { implementation "chat-engine:chat-engine" @@ -12,7 +14,7 @@ dependencies { implementation project(":features:navigator") - implementation Dependencies.mavenCentral.kotlinSerializationJson + implementation libs.kotlin.serialization kotlinTest(it) testImplementation 'chat-engine:chat-engine-test' diff --git a/features/profile/build.gradle b/features/profile/build.gradle index 3857e60..600ec17 100644 --- a/features/profile/build.gradle +++ b/features/profile/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation "chat-engine:chat-engine" diff --git a/features/settings/build.gradle b/features/settings/build.gradle index 05f55c8..29fc211 100644 --- a/features/settings/build.gradle +++ b/features/settings/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation "chat-engine:chat-engine" diff --git a/features/share-entry/build.gradle b/features/share-entry/build.gradle index 235b2e9..3be412b 100644 --- a/features/share-entry/build.gradle +++ b/features/share-entry/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation "chat-engine:chat-engine" diff --git a/features/verification/build.gradle b/features/verification/build.gradle index 21d6274..d90df6f 100644 --- a/features/verification/build.gradle +++ b/features/verification/build.gradle @@ -1,4 +1,6 @@ -applyAndroidComposeLibraryModule(project) +plugins { + id "st-feature-conventions" +} dependencies { implementation "chat-engine:chat-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..04716d3 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,59 @@ +[versions] +kotlin = "1.7.20" +coroutines = "1.6.4" +sqldelight = "1.5.4" +ktor = "2.2.1" +compose = "1.2.1" +compose-compiler = "1.3.2" +android-gp = "7.3.1" + +[plugins] + +android-application = { id = "com.android.application", version.ref = "android-gp" } +android-library = { id = "com.android.library", version.ref = "android-gp" } +android-kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +crashlytics = { id = "org.jetbrains.kotlin.plugin.parcelize", version = "1.8.0-RC" } + +firebase-crashlytics = { id = "com.google.firebase.crashlytics", version = "2.9.2" } + +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +sqldelight = { id = "com.squareup.sqldelight", version.ref = "sqldelight" } + +[libraries] + +compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" } +compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose" } +compose-material-three = { group = "androidx.compose.material3", name = "material3", version = "1.0.0-rc01" } +compose-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "compose" } +compose-activity = { group = "androidx.activity", name = "activity-compose", version = "1.6.0" } +compose-coil = { group = "io.coil-kt", name = "coil-compose", version = "2.2.2" } + +android-desugar = { group = "com.android.tools", name = "desugar_jdk_libs", version = "1.1.5" } + +accompanist-systemuicontroller = { group = "com.google.accompanist", name = "accompanist-systemuicontroller", version = "0.27.1" } + +matrix-olm = { group = "org.matrix.android", name = "olm-sdk", version = "3.2.12" } + +unifiedpush = { group = "com.github.UnifiedPush", name = "android-connector", version = "2.0.1" } + +firebase-bom = { module = "com.google.firebase:firebase-bom", version = "31.0.1" } + +kotlin-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version = "1.4.1" } + +kotlin-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" } +kotlin-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" } +kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit", version.ref = "kotlin" } + +sqldelight-android = { group = "com.squareup.sqldelight", name = "android-driver", version.ref = "sqldelight" } +sqldelight-test = { group = "com.squareup.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" } +sqldelight-extensions = { group = "com.squareup.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" } + +ktor-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktor" } + +junit = { group = "junit", name = "junit", version = "4.13.2" } +kluent = { group = "org.amshove.kluent", name = "kluent", version = "1.72" } +mockk = { group = "io.mockk", name = "mockk", version = "1.13.3" } + +leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version = "2.10" } diff --git a/screen-state b/screen-state index 4e92f14..adb986f 160000 --- a/screen-state +++ b/screen-state @@ -1 +1 @@ -Subproject commit 4e92f14031cc8be907cba09b3bfc1d9dbd380072 +Subproject commit adb986fdfd81011978785de08b6faf37adba08aa diff --git a/settings.gradle b/settings.gradle index d368353..7d1d0bb 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,9 +1,13 @@ +pluginManagement { + repositories { + gradlePluginPortal() + google() + } +} dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) apply from: "dependencies.gradle" - repositories { - Dependencies._repositories.call(it) - } + applyRepositories(it) } rootProject.name = "SmallTalk"