diff --git a/README.md b/README.md index aee2124043..7d0813df50 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Or [download](https://download.anytype.io/) an apk for your device architecture [Our tech change log](https://github.com/anytypeio/android-anytype/blob/develop/CHANGELOG.md). -[Anytype Android app dependencies](https://github.com/anytypeio/android-anytype/blob/develop/dependencies.gradle). +[Anytype Android app dependencies](https://github.com/anytypeio/android-anytype/blob/develop/gradle/libs.versions.toml). ### Conventions diff --git a/analytics/build.gradle b/analytics/build.gradle index 05e7663b56..05bf84773a 100644 --- a/analytics/build.gradle +++ b/analytics/build.gradle @@ -16,12 +16,10 @@ android { } dependencies { - def app = rootProject.ext.mainApplication - def analytics = rootProject.ext.analytics implementation libs.kotlin - implementation app.coroutinesAndroid - implementation app.timber - implementation analytics.amplitude + implementation libs.coroutinesAndroid + implementation libs.timber + implementation libs.amplitude } tasks.register("enableAnalyticsForDebugBuilds") { diff --git a/app/build.gradle b/app/build.gradle index 0b830636c5..f29b43b199 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -147,68 +147,60 @@ dependencies { implementation project(':analytics') implementation project(':ui-settings') - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - def acceptanceTesting = rootProject.ext.acceptanceTesting - def databaseDependencies = rootProject.ext.db - def analyticsDependencies = rootProject.ext.analytics - def protobufDependencies = rootProject.ext.protobuf - - //Compile time dependencies - kapt applicationDependencies.daggerCompiler + kapt libs.daggerCompiler kapt libs.glideCompiler - compileOnly applicationDependencies.javaxAnnotation - compileOnly applicationDependencies.javaxInject + compileOnly libs.javaxAnnotation + compileOnly libs.javaxInject //Application dependencies implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid + implementation libs.coroutinesAndroid implementation libs.fragment - implementation applicationDependencies.navigation - implementation applicationDependencies.navigationUi + implementation libs.navigation + implementation libs.navigationUi implementation libs.appcompat implementation libs.design - implementation applicationDependencies.recyclerView - implementation applicationDependencies.constraintLayout + implementation libs.recyclerView + implementation libs.constraintLayout implementation libs.glide - implementation applicationDependencies.dagger - implementation applicationDependencies.timber - implementation applicationDependencies.gson - implementation applicationDependencies.pickT - implementation applicationDependencies.emojiCompat + implementation libs.dagger + implementation libs.timber + implementation libs.gson + implementation libs.pickT + implementation libs.emojiCompat - implementation applicationDependencies.lifecycleViewModel - implementation applicationDependencies.lifecycleRuntime - implementation applicationDependencies.lifecycleLiveData + implementation libs.lifecycleViewModel + implementation libs.lifecycleRuntime + implementation libs.lifecycleLiveData implementation libs.compose implementation libs.composeFoundation implementation libs.composeMaterial implementation libs.composeToolingPreview - implementation applicationDependencies.preference + implementation libs.preference debugImplementation libs.composeTooling - implementation databaseDependencies.room + implementation libs.room - implementation applicationDependencies.crashlytics + implementation libs.crashlytics implementation libs.exoPlayerCore implementation libs.exoPlayerUi - implementation analyticsDependencies.amplitude - implementation analyticsDependencies.okhttp + implementation libs.amplitude + implementation libs.okhttp - implementation applicationDependencies.shimmerLayout - implementation applicationDependencies.photoView - implementation applicationDependencies.zxing + implementation libs.shimmerLayout + implementation libs.photoView + implementation libs.zxing - implementation applicationDependencies.androidxSecurityCrypto + implementation libs.androidxSecurityCrypto //Unit/Integration tests dependencies - testImplementation unitTestDependencies.androidXTestCore + testImplementation libs.androidXTestCore testImplementation libs.junit - testImplementation unitTestDependencies.robolectricLatest + testImplementation libs.robolectric testImplementation libs.kotlinTest testImplementation libs.mockitoKotlin testImplementation project(':test:utils') @@ -217,16 +209,16 @@ dependencies { androidTestImplementation project(':test:android-utils') androidTestImplementation libs.mockitoAndroid androidTestImplementation libs.mockitoKotlin - androidTestImplementation acceptanceTesting.espressoContrib + androidTestImplementation libs.espressoContrib androidTestImplementation libs.androidJUnit androidTestImplementation libs.kotlinTest androidTestImplementation libs.testRules - androidTestImplementation acceptanceTesting.disableAnimation - androidTestImplementation acceptanceTesting.navigationTesting + androidTestImplementation libs.disableAnimation + androidTestImplementation libs.navigationTesting androidTestImplementation project(":test:utils") androidTestImplementation project(":test:core-models-stub") - androidTestImplementation(unitTestDependencies.coroutineTesting) { + androidTestImplementation(libs.coroutineTesting) { exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug" } diff --git a/build.gradle b/build.gradle index 0785d58628..b3ef302935 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,6 @@ import com.android.build.gradle.LibraryPlugin -apply from: './dependencies.gradle' - buildscript { - ext.nav_version = '2.5.3' - ext.dokka_version = '1.4.32' - ext.compile_sdk = 33 ext.target_sdk = 31 ext.min_sdk = 26 @@ -34,18 +29,19 @@ buildscript { } } - dependencies { - def libs = project.extensions.getByName("libs") as org.gradle.accessors.dm.LibrariesForLibs - classpath(libs.agp) - classpath(libs.kgp) - classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" - classpath 'com.google.gms:google-services:4.3.14' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' - classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3' - classpath "org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}" - classpath(libs.kserialization) - classpath(libs.wire) - } +} + +plugins { + alias(libs.plugins.application) apply false + alias(libs.plugins.library) apply false + alias(libs.plugins.kotlinAndroid) apply false + alias(libs.plugins.kserialization) apply false + alias(libs.plugins.wire) apply false + alias(libs.plugins.dokka) apply false + alias(libs.plugins.firebaseDistribution) apply false + alias(libs.plugins.crashlytics) apply false + alias(libs.plugins.navigation) apply false + alias(libs.plugins.gms) apply false } def testDebugAll = tasks.create("testDebugAll") diff --git a/clipboard/build.gradle b/clipboard/build.gradle index 2db0c0c22f..8c9b56e158 100644 --- a/clipboard/build.gradle +++ b/clipboard/build.gradle @@ -18,19 +18,17 @@ android { } dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting implementation project(':data') implementation project(':core-models') implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid - implementation applicationDependencies.timber + implementation libs.coroutinesAndroid + implementation libs.timber testImplementation project(":test:utils") testImplementation libs.junit testImplementation libs.kotlinTest - testImplementation unitTestDependencies.androidXTestCore - testImplementation unitTestDependencies.robolectricLatest + testImplementation libs.androidXTestCore + testImplementation libs.robolectric } \ No newline at end of file diff --git a/core-ui/build.gradle b/core-ui/build.gradle index 87ad0000ce..91bf17ab07 100644 --- a/core-ui/build.gradle +++ b/core-ui/build.gradle @@ -22,8 +22,6 @@ android { } dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting implementation project(':core-utils') implementation project(':core-models') @@ -33,21 +31,21 @@ dependencies { implementation libs.appcompat implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid + implementation libs.coroutinesAndroid implementation libs.androidxCore - implementation applicationDependencies.lifecycleRuntime + implementation libs.lifecycleRuntime implementation libs.design - implementation applicationDependencies.recyclerView - implementation applicationDependencies.constraintLayout + implementation libs.recyclerView + implementation libs.constraintLayout implementation libs.glide - implementation applicationDependencies.shimmerLayout - implementation applicationDependencies.timber - implementation applicationDependencies.betterLinkMovement + implementation libs.shimmerLayout + implementation libs.timber + implementation libs.betterLinkMovement implementation libs.exoPlayerCore implementation libs.exoPlayerUi - implementation applicationDependencies.urlcleaner - implementation applicationDependencies.katex + implementation libs.urlcleaner + implementation libs.katex implementation libs.compose implementation libs.composeFoundation @@ -61,7 +59,7 @@ dependencies { testImplementation project(":test:core-models-stub") testImplementation libs.junit testImplementation libs.kotlinTest - testImplementation unitTestDependencies.robolectricLatest - testImplementation unitTestDependencies.androidXTestCore + testImplementation libs.robolectric + testImplementation libs.androidXTestCore testImplementation libs.mockitoKotlin } \ No newline at end of file diff --git a/core-utils/build.gradle b/core-utils/build.gradle index 1f07f10373..0594340aa6 100644 --- a/core-utils/build.gradle +++ b/core-utils/build.gradle @@ -16,36 +16,32 @@ android { dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - def acceptanceTesting = rootProject.ext.acceptanceTesting - - kapt applicationDependencies.daggerCompiler + kapt libs.daggerCompiler implementation libs.appcompat implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid - implementation applicationDependencies.dagger - implementation applicationDependencies.gson + implementation libs.coroutinesAndroid + implementation libs.dagger + implementation libs.gson - implementation applicationDependencies.timber - implementation applicationDependencies.crashlytics + implementation libs.timber + implementation libs.crashlytics - implementation applicationDependencies.constraintLayout - implementation applicationDependencies.recyclerView + implementation libs.constraintLayout + implementation libs.recyclerView testImplementation libs.junit testImplementation libs.kotlinTest testImplementation libs.mockitoKotlin - implementation applicationDependencies.navigation - implementation applicationDependencies.navigationUi + implementation libs.navigation + implementation libs.navigationUi - testImplementation unitTestDependencies.robolectricLatest + testImplementation libs.robolectric androidTestImplementation libs.androidJUnit androidTestImplementation libs.testRules - testImplementation unitTestDependencies.archCoreTesting - testImplementation unitTestDependencies.coroutineTesting + testImplementation libs.archCoreTesting + testImplementation libs.coroutineTesting } diff --git a/data/build.gradle b/data/build.gradle index ae1342a7ef..97b7d0c219 100644 --- a/data/build.gradle +++ b/data/build.gradle @@ -6,16 +6,13 @@ dependencies { implementation project(':domain') implementation project(':core-models') - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - implementation libs.kotlin - implementation applicationDependencies.coroutines + implementation libs.coroutines testImplementation project(":test:utils") testImplementation project(":test:core-models-stub") testImplementation libs.junit testImplementation libs.kotlinTest testImplementation libs.mockitoKotlin - testImplementation unitTestDependencies.coroutineTesting + testImplementation libs.coroutineTesting } \ No newline at end of file diff --git a/dependencies.gradle b/dependencies.gradle deleted file mode 100644 index 92047046c5..0000000000 --- a/dependencies.gradle +++ /dev/null @@ -1,154 +0,0 @@ -ext { - // Kotlin - kotlin_coroutines_version = '1.6.4' - - // AndroidX - androidx_test_core_version = '1.4.0' - androidx_core_testing_version = '2.1.0' - androidx_security_crypto_version = '1.0.0' - androidx_preference_version = '1.2.0' - - // Other Android framework dependencies - constraintLayout_version = '2.1.4' - recyclerview_version = '1.2.1' - cardview_version = '1.0.0' - emoji_compat_version = '1.1.0' - view_pager_2_version = '1.0.0' - - // Architecture Components - lifecycle_version = '2.5.1' - navigation_version = '2.5.3' - - // Third party libraries - shimmer_layout_version = "0.5.0" - photo_view_version = '2.3.0' - dagger_version = '2.44' - javaxAnnotations_version = '1.0' - javaxInject_version = '1' - retrofit_version = '2.3.0' - okhttp_logging_interceptor_version = '3.8.1' - gson_version = '2.10' - better_link_method_version = '2.2.0' - table_view_version = '0.8.9.4' - pickt_version = "2.0.2" - zxing_version = "4.1.0" - urlcleaner_version = "0.4.0" - katex_version = "1.0.2" - - // Unit Testing - robolectric_latest_version = '4.7.3' - kluent_version = '1.14' - timber_junit = '1.0.1' - turbine_version = '0.7.0' - coroutine_testing_version = '1.6.4' - live_data_testing_version = '1.2.0' - - // Acceptance Testing - espresso_version = '3.4.0' - disable_animation_version = '2.0.0' - - // Development - leakCanaryVersion = '1.5' - stethoVersion = '1.5.1' - - // Logging, Analytics & Crash reporting - - timber_version = '5.0.1' - crashlytics_version = '18.3.1' - - // Protobuf - - protobuf_java_version = '3.9.2' - protoc_version = '3.9.0' - - // DBB - - room_version = '2.4.3' - - // Analytics - - amplitude_version = '2.36.1' - okhttp_version = '4.2.2' - - // Anytype - - mainApplication = [ - coroutines: "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version", - coroutinesAndroid: "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version", - - navigation: "androidx.navigation:navigation-fragment-ktx:$navigation_version", - navigationUi: "androidx.navigation:navigation-ui-ktx:$navigation_version", - lifecycleViewModel: "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version", - lifecycleRuntime: "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version", - lifecycleCompiler: "androidx.lifecycle:lifecycle-compiler:$lifecycle_version", - lifecycleLiveData: "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version", - constraintLayout: "androidx.constraintlayout:constraintlayout:$constraintLayout_version", - cardView: "androidx.cardview:cardview:$cardview_version", - recyclerView: "androidx.recyclerview:recyclerview:$recyclerview_version", - viewPager: "androidx.viewpager2:viewpager2:$view_pager_2_version", - betterLinkMovement: "me.saket:better-link-movement-method:$better_link_method_version", - emojiCompat: "androidx.emoji:emoji-appcompat:$emoji_compat_version", - photoView: "com.github.chrisbanes:PhotoView:$photo_view_version", - katex: "com.github.judemanutd:katexview:$katex_version", - daggerCompiler: "com.google.dagger:dagger-compiler:$dagger_version", - dagger: "com.google.dagger:dagger:$dagger_version", - javaxAnnotation: "javax.annotation:jsr250-api:$javaxAnnotations_version", - javaxInject: "javax.inject:javax.inject:$javaxInject_version", - gson: "com.google.code.gson:gson:$gson_version", - retrofit: "com.squareup.retrofit2:converter-gson:$retrofit_version", - okhttpLoggingInterceptor: "com.squareup.okhttp3:logging-interceptor:$okhttp_logging_interceptor_version", - timber: "com.jakewharton.timber:timber:$timber_version", - tableView: "com.github.evrencoskun:TableView:$table_view_version", - pickT: "com.github.HBiSoft:PickiT:$pickt_version", - zxing: "com.journeyapps:zxing-android-embedded:$zxing_version", - urlcleaner: "com.shekhargulati.urlcleaner:urlcleaner:$urlcleaner_version", - crashlytics: "com.google.firebase:firebase-crashlytics:$crashlytics_version", - shimmerLayout: "com.facebook.shimmer:shimmer:$shimmer_layout_version", - androidxSecurityCrypto: "androidx.security:security-crypto:$androidx_security_crypto_version", - preference : "androidx.preference:preference:$androidx_preference_version" - ] - - unitTesting = [ - robolectricLatest: "org.robolectric:robolectric:$robolectric_latest_version", - kluent : "org.amshove.kluent:kluent:$kluent_version", - archCoreTesting : "androidx.arch.core:core-testing:$androidx_core_testing_version", - liveDataTesting : "com.jraska.livedata:testing-ktx:$live_data_testing_version", - coroutineTesting : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutine_testing_version", - assertj : "com.squareup.assertj:assertj-android:1.0.0", - androidXTestCore : "androidx.test:core:$androidx_test_core_version", - timberJUnit : "net.lachlanmckee:timber-junit-rule:$timber_junit", - turbine : "app.cash.turbine:turbine:$turbine_version" - ] - - acceptanceTesting = [ - espressoCore : "androidx.test.espresso:espresso-core:$espresso_version", - espressoContrib : "androidx.test.espresso:espresso-contrib:$espresso_version", - espressoIntents : "androidx.test.espresso:espresso-intents:$espresso_version", - disableAnimation : "com.bartoszlipinski:disable-animations-rule:$disable_animation_version", - navigationTesting : "androidx.navigation:navigation-testing:$navigation_version" - ] - - development = [ - leakCanary : "com.squareup.leakcanary:leakcanary-android:${leakCanaryVersion}", - leakCanaryNoop: "com.squareup.leakcanary:leakcanary-android-no-op:${leakCanaryVersion}", - stetho : "com.facebook.stetho:stetho:${stethoVersion}" - ] - - protobuf = [ - protobufJava: "com.google.protobuf:protobuf-java:$protobuf_java_version", - protobufJavaUtil: "com.google.protobuf:protobuf-java-util:$protobuf_java_version", - protoc: "com.google.protobuf:protoc:$protoc_version", - ] - - db = [ - room : "androidx.room:room-runtime:$room_version", - roomKtx : "androidx.room:room-ktx:$room_version", - annotations: "androidx.room:room-compiler:$room_version", - roomTesting: "androidx.room:room-testing:$room_version" - ] - - analytics = [ - amplitude: "com.amplitude:android-sdk:$amplitude_version", - okhttp : "com.squareup.okhttp3:okhttp:$okhttp_version" - ] -} \ No newline at end of file diff --git a/device/build.gradle b/device/build.gradle index 95392cc2df..bf634b31cb 100644 --- a/device/build.gradle +++ b/device/build.gradle @@ -4,19 +4,17 @@ plugins { } dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting implementation project(':data') implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid + implementation libs.coroutinesAndroid implementation libs.androidxCore - implementation applicationDependencies.timber + implementation libs.timber testImplementation libs.junit testImplementation libs.kotlinTest - testImplementation unitTestDependencies.androidXTestCore - testImplementation unitTestDependencies.robolectricLatest + testImplementation libs.androidXTestCore + testImplementation libs.robolectric } \ No newline at end of file diff --git a/domain/build.gradle b/domain/build.gradle index 8cfc0e4177..f4d43154c1 100644 --- a/domain/build.gradle +++ b/domain/build.gradle @@ -7,19 +7,15 @@ dependencies { implementation project(':core-models') - def applicationDependencies = rootProject.ext.mainApplication - implementation libs.kotlin - implementation applicationDependencies.coroutines - - def unitTestDependencies = rootProject.ext.unitTesting + implementation libs.coroutines testImplementation project(":test:utils") testImplementation libs.kotlinTest - testImplementation unitTestDependencies.turbine + testImplementation libs.turbine testImplementation libs.mockitoKotlin - testImplementation unitTestDependencies.coroutineTesting + testImplementation libs.coroutineTesting testImplementation project(":test:core-models-stub") } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b7df9ab730..f74d7a3161 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,14 +14,53 @@ junitVersion = '4.13.2' androidJunitVersion = "1.1.4" runnerVersion = "1.5.0" mockitoAndroidVersion = '4.10.0' +kotlinCoroutinesVersion = '1.6.4' +androidxTestCoreVersion = '1.4.0' +androidxCoreTestingVersion = '2.1.0' +androidxSecurityCryptoVersion = '1.0.0' +androidxPreferenceVersion = '1.2.0' +constraintLayoutVersion = '2.1.4' +recyclerviewVersion = '1.2.1' +cardviewVersion = '1.0.0' +emojiCompatVersion = '1.1.0' +viewPager2Version = '1.0.0' +lifecycleVersion = '2.5.1' +navigationVersion = '2.5.3' +shimmerLayoutVersion = '0.5.0' +photoViewVersion = '2.3.0' +daggerVersion = '2.44' +javaxAnnotationsVersion = '1.0' +javaxInjectVersion = '1' +retrofitVersion = '2.3.0' +okhttpLoggingInterceptorVersion = '3.8.1' +gsonVersion = '2.10' +betterLinkMethodVersion = '2.2.0' +tableViewVersion = '0.8.9.4' +picktVersion = '2.0.2' +zxingVersion = '4.1.0' +urlcleanerVersion = '0.4.0' +katexVersion = '1.0.2' +robolectricLatestVersion = '4.7.3' +kluentVersion = '1.14' +timberJunitVersion = '1.0.1' +turbineVersion = '0.7.0' +coroutineTestingVersion = '1.6.4' +liveDataTestingVersion = '1.2.0' +espressoVersion = '3.4.0' +disableAnimationVersion = '2.0.0' +leakCanaryVersion = '1.5' +stethoVersion = '1.5.1' +timberVersion = '5.0.1' +crashlyticsVersion = '18.3.1' +protobufJavaVersion = '3.9.2' +protocVersion = '3.9.0' +roomVersion = '2.4.3' +amplitudeVersion = '2.36.1' +okhttpVersion = '4.2.2' [libraries] middleware = { module = "io.anytype:android-mw", version.ref = "middlewareVersion" } androidxCore = { module = "androidx.core:core-ktx", version.ref = "androidxCoreVersion" } -agp = { module = "com.android.tools.build:gradle", version = "7.3.1" } -kgp = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinVersion" } -kserialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlinVersion" } -wire = { module = "com.squareup.wire:wire-gradle-plugin", version = "4.4.3" } kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlinVersion" } kotlinTest = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlinVersion" } compose = { module = "androidx.compose.ui:ui", version.ref = "androidxComposeVersion2" } @@ -47,7 +86,77 @@ androidJUnit = { module = "androidx.test.ext:junit", version.ref = "androidJunit testRunner = { module = "androidx.test:runner", version.ref = "runnerVersion" } testRules = { module = "androidx.test:rules", version.ref = "runnerVersion" } mockitoAndroid = { module = "org.mockito:mockito-android", version.ref = "mockitoAndroidVersion" } +coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinCoroutinesVersion" } +coroutineTesting = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutineTestingVersion" } +coroutinesAndroid = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinCoroutinesVersion" } +navigation = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "navigationVersion" } +navigationUi = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "navigationVersion" } +lifecycleViewModel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleVersion" } +lifecycleRuntime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycleVersion" } +lifecycleCompiler = { module = "androidx.lifecycle:lifecycle-compiler", version.ref = "lifecycleVersion" } +lifecycleLiveData = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycleVersion" } +constraintLayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintLayoutVersion" } +cardView = { module = "androidx.cardview:cardview", version.ref = "cardviewVersion" } +recyclerView = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerviewVersion" } +viewPager = { module = "androidx.viewpager2:viewpager2", version.ref = "viewPager2Version" } +betterLinkMovement = { module = "me.saket:better-link-movement-method", version.ref = "betterLinkMethodVersion" } +emojiCompat = { module = "androidx.emoji:emoji-appcompat", version.ref = "emojiCompatVersion" } +photoView = { module = "com.github.chrisbanes:PhotoView", version.ref = "photoViewVersion" } +katex = { module = "com.github.judemanutd:katexview", version.ref = "katexVersion" } +daggerCompiler = { module = "com.google.dagger:dagger-compiler", version.ref = "daggerVersion" } +dagger = { module = "com.google.dagger:dagger", version.ref = "daggerVersion" } +javaxAnnotation = { module = "javax.annotation:jsr250-api", version.ref = "javaxAnnotationsVersion" } +javaxInject = { module = "javax.inject:javax.inject", version.ref = "javaxInjectVersion" } +gson = { module = "com.google.code.gson:gson", version.ref = "gsonVersion" } +retrofit = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofitVersion" } +okhttpLoggingInterceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttpLoggingInterceptorVersion" } +timber = { module = "com.jakewharton.timber:timber", version.ref = "timberVersion" } +tableView = { module = "com.github.evrencoskun:TableView", version.ref = "tableViewVersion" } +pickT = { module = "com.github.HBiSoft:PickiT", version.ref = "picktVersion" } +zxing = { module = "com.journeyapps:zxing-android-embedded", version.ref = "zxingVersion" } +urlcleaner = { module = "com.shekhargulati.urlcleaner:urlcleaner", version.ref = "urlcleanerVersion" } +crashlytics = { module = "com.google.firebase:firebase-crashlytics", version.ref = "crashlyticsVersion" } +shimmerLayout = { module = "com.facebook.shimmer:shimmer", version.ref = "shimmerLayoutVersion" } +archCoreTesting = { module = "androidx.arch.core:core-testing", version.ref = "androidxCoreTestingVersion" } +liveDataTesting = { module = "com.jraska.livedata:testing-ktx", version.ref = "liveDataTestingVersion" } +androidXTestCore = { module = "androidx.test:core", version.ref = "androidxTestCoreVersion" } +androidxSecurityCrypto = { module = "androidx.security:security-crypto", version.ref = "androidxSecurityCryptoVersion" } +preference = { module = "androidx.preference:preference", version.ref = "androidxPreferenceVersion" } +leakCanaryAndroid = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakCanaryVersion" } +stetho = { module = "com.facebook.stetho:stetho", version.ref = "stethoVersion" } +robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectricLatestVersion" } +kluent = { module = "org.amshove.kluent:kluent-android", version.ref = "kluentVersion" } +timberJUnit = { module = "net.lachlanmckee:timber-junit-rule", version.ref = "timberJunitVersion" } +turbine = { module = "app.cash.turbine:turbine", version.ref = "turbineVersion" } +espressoCore = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoVersion" } +espressoContrib = { module = "androidx.test.espresso:espresso-contrib", version.ref = "espressoVersion" } +espressoIntents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espressoVersion" } +disableAnimation = { module = "com.bartoszlipinski:disable-animations-rule", version.ref = "disableAnimationVersion" } +navigationTesting = { module = "androidx.navigation:navigation-testing", version.ref = "navigationVersion" } +leakCanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakCanaryVersion" } +leakCanaryNoop = { module = "com.squareup.leakcanary:leakcanary-android-no-op", version.ref = "leakCanaryVersion" } +protobufJava = { module = "com.google.protobuf:protobuf-java", version.ref = "protobufJavaVersion" } +protobufJavaUtil = { module = "com.google.protobuf:protobuf-java-util", version.ref = "protobufJavaVersion" } +protoc = { module = "com.google.protobuf:protoc", version.ref = "protocVersion" } +room = { module = "androidx.room:room-runtime", version.ref = "roomVersion" } +roomKtx = { module = "androidx.room:room-ktx", version.ref = "roomVersion" } +annotations = { module = "androidx.room:room-compiler", version.ref = "roomVersion" } +roomTesting = { module = "androidx.room:room-testing", version.ref = "roomVersion" } +amplitude = { module = "com.amplitude:android-sdk", version.ref = "amplitudeVersion" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttpVersion" } [bundles] [plugins] +application = { id = "com.android.application", version = "7.3.1" } +library = { id = "com.android.library", version = "7.3.1" } +kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" } +dokka = { id = "org.jetbrains.dokka", version.ref = "kotlinVersion" } +kserialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinVersion" } +wire = { id = "com.squareup.wire", version = "4.4.3" } +firebaseDistribution = { id = "com.google.firebase.appdistribution", version = "3.1.1" } +crashlytics = { id = "com.google.firebase.crashlytics", version = "2.9.2" } +navigation = { id = "androidx.navigation.safeargs", version.ref = "navigationVersion" } +navigationKotlin = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navigationVersion" } +kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlinVersion" } +gms = { id = "com.google.gms.google-services", version = "4.3.14" } \ No newline at end of file diff --git a/library-emojifier/build.gradle b/library-emojifier/build.gradle index 42016cf242..804b7a832f 100644 --- a/library-emojifier/build.gradle +++ b/library-emojifier/build.gradle @@ -5,13 +5,10 @@ plugins { dependencies { - def appDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - implementation project(':domain') implementation project(':core-utils') - implementation appDependencies.gson - implementation appDependencies.coroutinesAndroid + implementation libs.gson + implementation libs.coroutinesAndroid testImplementation libs.junit testImplementation libs.kotlinTest diff --git a/library-page-icon-picker-widget/build.gradle b/library-page-icon-picker-widget/build.gradle index fa26d339a3..5555651558 100644 --- a/library-page-icon-picker-widget/build.gradle +++ b/library-page-icon-picker-widget/build.gradle @@ -10,8 +10,6 @@ android { } dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting implementation project(':core-utils') implementation project(':core-ui') @@ -20,18 +18,18 @@ dependencies { implementation libs.appcompat implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid + implementation libs.coroutinesAndroid implementation libs.androidxCore - implementation applicationDependencies.emojiCompat + implementation libs.emojiCompat implementation libs.design - implementation applicationDependencies.recyclerView - implementation applicationDependencies.constraintLayout - implementation applicationDependencies.timber + implementation libs.recyclerView + implementation libs.constraintLayout + implementation libs.timber implementation libs.glide testImplementation libs.junit testImplementation libs.kotlinTest - testImplementation unitTestDependencies.robolectricLatest - testImplementation unitTestDependencies.androidXTestCore + testImplementation libs.robolectric + testImplementation libs.androidXTestCore } \ No newline at end of file diff --git a/library-syntax-highlighter/build.gradle b/library-syntax-highlighter/build.gradle index a83234888e..6c548f41fa 100644 --- a/library-syntax-highlighter/build.gradle +++ b/library-syntax-highlighter/build.gradle @@ -5,18 +5,16 @@ plugins { } dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting implementation libs.appcompat implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid + implementation libs.coroutinesAndroid implementation libs.androidxCore - implementation applicationDependencies.timber + implementation libs.timber implementation libs.kotlinxSerializationJson testImplementation libs.junit testImplementation libs.kotlinTest - testImplementation unitTestDependencies.robolectricLatest - testImplementation unitTestDependencies.androidXTestCore + testImplementation libs.robolectric + testImplementation libs.androidXTestCore } \ No newline at end of file diff --git a/middleware/build.gradle b/middleware/build.gradle index 1adfa52f9e..5da722f3b2 100644 --- a/middleware/build.gradle +++ b/middleware/build.gradle @@ -11,15 +11,12 @@ dependencies { implementation project(':data') implementation project(':core-utils') - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - implementation libs.kotlin - implementation applicationDependencies.timber - implementation applicationDependencies.coroutinesAndroid + implementation libs.timber + implementation libs.coroutinesAndroid implementation libs.gsonWire - implementation applicationDependencies.gson - implementation applicationDependencies.javaxInject + implementation libs.gson + implementation libs.javaxInject implementation libs.middleware testImplementation project(":test:utils") diff --git a/persistence/build.gradle b/persistence/build.gradle index 8d3813da3f..41798545d8 100644 --- a/persistence/build.gradle +++ b/persistence/build.gradle @@ -9,27 +9,23 @@ dependencies { implementation project(':data') implementation project(':core-models') - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - def databaseDependencies = rootProject.ext.db - implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid - implementation applicationDependencies.gson - implementation applicationDependencies.lifecycleLiveData + implementation libs.coroutinesAndroid + implementation libs.gson + implementation libs.lifecycleLiveData - implementation databaseDependencies.room - implementation databaseDependencies.roomKtx + implementation libs.room + implementation libs.roomKtx - kapt databaseDependencies.annotations + kapt libs.annotations - implementation applicationDependencies.timber + implementation libs.timber testImplementation project(":test:utils") - testImplementation databaseDependencies.roomTesting + testImplementation libs.roomTesting testImplementation libs.junit testImplementation libs.kotlinTest testImplementation libs.mockitoKotlin - testImplementation unitTestDependencies.robolectricLatest - testImplementation unitTestDependencies.archCoreTesting + testImplementation libs.robolectric + testImplementation libs.archCoreTesting } \ No newline at end of file diff --git a/presentation/build.gradle b/presentation/build.gradle index df7b2f3a2a..f8fb90c7d5 100644 --- a/presentation/build.gradle +++ b/presentation/build.gradle @@ -21,35 +21,31 @@ dependencies { implementation project(':analytics') implementation project(':core-models') - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - def analyticsDependencies = rootProject.ext.analytics - implementation libs.kotlin - implementation applicationDependencies.coroutinesAndroid + implementation libs.coroutinesAndroid - implementation applicationDependencies.lifecycleViewModel - implementation applicationDependencies.lifecycleLiveData + implementation libs.lifecycleViewModel + implementation libs.lifecycleLiveData - implementation applicationDependencies.timber + implementation libs.timber - implementation applicationDependencies.urlcleaner + implementation libs.urlcleaner - implementation analyticsDependencies.amplitude + implementation libs.amplitude - compileOnly applicationDependencies.javaxInject + compileOnly libs.javaxInject testImplementation libs.junit testImplementation libs.kotlinTest testImplementation libs.mockitoKotlin testImplementation "net.bytebuddy:byte-buddy:1.12.20" - testImplementation unitTestDependencies.coroutineTesting - testImplementation unitTestDependencies.liveDataTesting - testImplementation unitTestDependencies.archCoreTesting - testImplementation unitTestDependencies.androidXTestCore - testImplementation unitTestDependencies.robolectricLatest - testImplementation unitTestDependencies.timberJUnit - testImplementation unitTestDependencies.turbine + testImplementation libs.coroutineTesting + testImplementation libs.liveDataTesting + testImplementation libs.archCoreTesting + testImplementation libs.androidXTestCore + testImplementation libs.robolectric + testImplementation libs.timberJUnit + testImplementation libs.turbine testImplementation project(":test:utils") testImplementation project(":test:core-models-stub") } diff --git a/sample/build.gradle b/sample/build.gradle index 407da525dd..b96cb6ccf2 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,7 +1,9 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' +plugins { + id "com.android.application" + id "kotlin-android" + id "kotlin-android-extensions" + id "kotlin-kapt" +} android { compileSdkVersion 33 @@ -39,9 +41,6 @@ android { dependencies { - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting - implementation project(':core-utils') implementation project(':core-ui') implementation project(':presentation') @@ -49,19 +48,19 @@ dependencies { implementation libs.kotlin implementation libs.appcompat implementation libs.glide - implementation applicationDependencies.coroutinesAndroid - implementation applicationDependencies.constraintLayout + implementation libs.coroutinesAndroid + implementation libs.constraintLayout implementation libs.androidxCore - implementation applicationDependencies.timber + implementation libs.timber implementation libs.fragment implementation libs.design - implementation applicationDependencies.pickT + implementation libs.pickT //implementation 'com.github.gregcockroft:AndroidMath:ALPHA' testImplementation libs.junit testImplementation libs.kotlinTest - testImplementation unitTestDependencies.robolectricLatest - testImplementation unitTestDependencies.androidXTestCore + testImplementation libs.robolectric + testImplementation libs.androidXTestCore testImplementation libs.mockitoKotlin } diff --git a/settings.gradle b/settings.gradle index 0cf294bba7..fb531d4b8d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,26 +1,12 @@ -include ':app', - ':core-utils', - ':middleware', - ':persistence', - ':domain', - ':data', - ':device', - ':presentation', - ':core-ui', - ':library-page-icon-picker-widget', - ':library-emojifier', - ':library-syntax-highlighter', - ':sample', - ':clipboard', - ':analytics', - ':protocol', - ':core-models', - ':test:android-utils', - ':test:utils', - ':test:core-models-stub', - ':libs' +pluginManagement { -include ':ui-settings' + repositories { + mavenLocal() + gradlePluginPortal() + google() + mavenCentral() + } +} dependencyResolutionManagement { /** @@ -45,4 +31,28 @@ dependencyResolutionManagement { } } } -} \ No newline at end of file +} + +include ':app', + ':core-utils', + ':middleware', + ':persistence', + ':domain', + ':data', + ':device', + ':presentation', + ':core-ui', + ':library-page-icon-picker-widget', + ':library-emojifier', + ':library-syntax-highlighter', + ':sample', + ':clipboard', + ':analytics', + ':protocol', + ':core-models', + ':test:android-utils', + ':test:utils', + ':test:core-models-stub', + ':libs' + +include ':ui-settings' \ No newline at end of file diff --git a/test/android-utils/build.gradle b/test/android-utils/build.gradle index a4babd8287..35f67eab63 100644 --- a/test/android-utils/build.gradle +++ b/test/android-utils/build.gradle @@ -4,12 +4,12 @@ plugins { } dependencies { - api acceptanceTesting.espressoCore + api libs.espressoCore implementation libs.appcompat implementation libs.kotlin - implementation mainApplication.coroutinesAndroid + implementation libs.coroutinesAndroid implementation libs.androidxCore implementation libs.design - implementation mainApplication.recyclerView + implementation libs.recyclerView } \ No newline at end of file diff --git a/ui-settings/build.gradle b/ui-settings/build.gradle index b378db5772..dfd26c78c9 100644 --- a/ui-settings/build.gradle +++ b/ui-settings/build.gradle @@ -23,13 +23,10 @@ dependencies { implementation project(':core-models') implementation project(':core-utils') - def applicationDependencies = rootProject.ext.mainApplication - def unitTestDependencies = rootProject.ext.unitTesting + compileOnly libs.javaxInject - compileOnly applicationDependencies.javaxInject - - implementation applicationDependencies.lifecycleViewModel - implementation applicationDependencies.lifecycleRuntime + implementation libs.lifecycleViewModel + implementation libs.lifecycleRuntime implementation libs.appcompat implementation libs.compose @@ -39,7 +36,7 @@ dependencies { debugImplementation libs.composeTooling - implementation applicationDependencies.timber + implementation libs.timber testImplementation libs.junit testImplementation libs.kotlinTest