diff --git a/build.gradle b/build.gradle index dcd64dc6..d55eb843 100644 --- a/build.gradle +++ b/build.gradle @@ -2,115 +2,23 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { ext { - // https://mvnrepository.com/artifact/androidx.room/room-compiler - // https://mvnrepository.com/artifact/androidx.room/room-runtime - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/room/room-compiler/ - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/room/room-runtime/ - def room_version = '2.7.0-beta01' - // https://mvnrepository.com/artifact/com.google.dagger/hilt-android - // https://mvnrepository.com/artifact/com.google.dagger/hilt-compiler - // https://android.googlesource.com/platform/external/dagger2 - def hilt_version = '2.55' - // https://mvnrepository.com/artifact/io.github.takahirom.roborazzi/roborazzi - roborazzi_version = '1.50.0' - // https://mvnrepository.com/artifact/androidx.test.espresso/espresso-core - // https://mvnrepository.com/artifact/androidx.test.espresso/espresso-contrib - def espresso_version = '3.7.0' - libs = [ - // https://mvnrepository.com/artifact/androidx.activity/activity - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/activity/activity/ - activity : 'androidx.activity:activity:1.11.0-alpha01', - // https://mvnrepository.com/artifact/androidx.annotation/annotation - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/annotation/annotation-jvm/ - annotation : 'androidx.annotation:annotation:1.9.0-rc01', - // https://mvnrepository.com/artifact/androidx.appcompat/appcompat - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/appcompat/appcompat/ - appcompat : 'androidx.appcompat:appcompat:1.7.1', // TODO: AOSP sources use 1.8.0-alpha01; upgrade when available in Maven Central - // https://mvnrepository.com/artifact/androidx.arch.core/core-testing - arch_core_testing : 'androidx.arch.core:core-testing:2.2.0', - // https://mvnrepository.com/artifact/org.awaitility/awaitility - awaitility : 'org.awaitility:awaitility:4.3.0', - // https://mvnrepository.com/artifact/androidx.biometric/biometric - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/biometric/biometric/ - biometric : 'androidx.biometric:biometric:1.4.0-alpha02', - // https://mvnrepository.com/artifact/androidx.collection/collection - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/collection/collection-jvm/ - collection : 'androidx.collection:collection:1.5.0-beta03', - // https://mvnrepository.com/artifact/androidx.coordinatorlayout/coordinatorlayout - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/coordinatorlayout/coordinatorlayout/ - coordinatorlayout : 'androidx.coordinatorlayout:coordinatorlayout:1.3.0-alpha02', - // https://mvnrepository.com/artifact/androidx.core/core - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/core/core/ - core : 'androidx.core:core:1.16.0-beta01', - // https://mvnrepository.com/artifact/com.google.errorprone/error_prone_core - errorprone : 'com.google.errorprone:error_prone_core:2.42.0', - // https://mvnrepository.com/artifact/androidx.test.espresso/espresso-core - espresso : "androidx.test.espresso:espresso-core:$espresso_version", - espresso_contrib : "androidx.test.espresso:espresso-contrib:$espresso_version", - // https://mvnrepository.com/artifact/org.hamcrest/hamcrest - hamcrest : 'org.hamcrest:hamcrest:3.0', - hilt_android : "com.google.dagger:hilt-android:$hilt_version", - hilt_android_testing : "com.google.dagger:hilt-android-testing:$hilt_version", - hilt_compiler : "com.google.dagger:hilt-compiler:$hilt_version", - // https://mvnrepository.com/artifact/junit/junit - junit : 'junit:junit:4.13.2', - // https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-livedata - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/lifecycle/lifecycle-livedata/ - livedata : 'androidx.lifecycle:lifecycle-livedata:2.9.0-alpha12', - // https://mvnrepository.com/artifact/com.google.android.material/material - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/extras/material-design-x/com/google/android/material/material/ - material : 'com.google.android.material:material:1.13.0-alpha08', - // https://mvnrepository.com/artifact/org.mockito/mockito-core - mockito : 'org.mockito:mockito-core:5.20.0', - // https://mvnrepository.com/artifact/androidx.preference/preference - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/preference/preference/ - preference : 'androidx.preference:preference:1.2.1', // TODO AOSP sources use 1.3.0-alpha01; upgrade when available in Maven Central - // https://mvnrepository.com/artifact/androidx.recyclerview/recyclerview - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/recyclerview/recyclerview/ - recyclerview : 'androidx.recyclerview:recyclerview:1.4.0', // TODO AOSP sources use 1.5.0-alpha01; upgrade when available in Maven Central - // https://mvnrepository.com/artifact/org.robolectric/robolectric - robolectric : 'org.robolectric:robolectric:4.16', - roborazzi : "io.github.takahirom.roborazzi:roborazzi:$roborazzi_version", - roborazzi_junit_rule : "io.github.takahirom.roborazzi:roborazzi-junit-rule:$roborazzi_version", - // https://mvnrepository.com/artifact/org.robolectric/android-all - robolectric_android_all : 'org.robolectric:android-all:16-robolectric-13921718', - room_compiler : "androidx.room:room-compiler:$room_version", - room_runtime : "androidx.room:room-runtime:$room_version", - room_testing : "androidx.room:room-testing:$room_version", - // https://mvnrepository.com/artifact/androidx.test/core - test_core : 'androidx.test:core:1.7.0', - // https://mvnrepository.com/artifact/androidx.test.ext/junit - test_ext_junit : 'androidx.test.ext:junit:1.3.0', - // https://mvnrepository.com/artifact/androidx.test/rules - test_rules : 'androidx.test:rules:1.7.0', - // https://mvnrepository.com/artifact/androidx.test/runner - test_runner : 'androidx.test:runner:1.7.0', - // https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-viewmodel - // https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/lifecycle/lifecycle-viewmodel-android/ - viewmodel : 'androidx.lifecycle:lifecycle-viewmodel:2.9.0-alpha12' - ] jars = [ android_hidden : 'android-36.jar' ] } dependencies { - classpath "io.github.takahirom.roborazzi:roborazzi-gradle-plugin:$roborazzi_version" + classpath "io.github.takahirom.roborazzi:roborazzi-gradle-plugin:${libs.versions.roborazzi.get()}" } } plugins { - // https://mvnrepository.com/artifact/com.android.application/com.android.application.gradle.plugin - id 'com.android.application' version '8.10.1' apply false - // https://mvnrepository.com/artifact/com.android.library/com.android.library.gradle.plugin - id 'com.android.library' version '8.10.1' apply false - // https://plugins.gradle.org/plugin/org.jetbrains.kotlin.android - id 'org.jetbrains.kotlin.android' version '2.1.10' apply false - // https://mvnrepository.com/artifact/net.ltgt.errorprone/net.ltgt.errorprone.gradle.plugin - id 'net.ltgt.errorprone' version '4.2.0' apply false - // https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kover-gradle-plugin - id 'org.jetbrains.kotlinx.kover' version '0.9.1' apply false - id 'io.github.takahirom.roborazzi' version "$roborazzi_version" apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.errorprone) apply false + alias(libs.plugins.kover) apply false + alias(libs.plugins.roborazzi) apply false } allprojects { @@ -308,12 +216,12 @@ dependencies { implementation libs.preference implementation libs.recyclerview implementation libs.viewmodel - implementation libs.hilt_android - kapt libs.hilt_compiler - kaptTest libs.hilt_compiler + implementation libs.hilt.android + kapt libs.hilt.compiler + kaptTest libs.hilt.compiler - implementation libs.room_runtime - kapt libs.room_compiler + implementation libs.room.runtime + kapt libs.room.compiler implementation project(path: ':SettingsLib:BannerMessagePreference') implementation project(path: ':SettingsLib:CollapsingToolbarBaseActivity') @@ -321,41 +229,41 @@ dependencies { implementation project(path: ':SettingsLib:SettingsTheme') implementation project(path: ':SettingsLib:TwoTargetPreference') - testImplementation libs.arch_core_testing + testImplementation libs.arch.core.testing testImplementation libs.awaitility testImplementation libs.hamcrest testImplementation (libs.espresso) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - testImplementation (libs.espresso_contrib) { + testImplementation (libs.espresso.contrib) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } testImplementation libs.junit - testImplementation libs.hilt_android_testing + testImplementation libs.hilt.android.testing testImplementation libs.mockito mockitoAgent(libs.mockito) - testImplementation libs.test_core + testImplementation libs.test.core testImplementation libs.robolectric - testImplementation libs.robolectric_android_all + testImplementation libs.robolectric.androidAll testImplementation libs.roborazzi - testImplementation libs.roborazzi_junit_rule - testImplementation libs.room_testing - testImplementation libs.test_ext_junit + testImplementation libs.roborazzi.junit.rule + testImplementation libs.room.testing + testImplementation libs.test.ext.junit androidTestImplementation libs.hamcrest androidTestImplementation (libs.junit) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - androidTestImplementation (libs.hilt_android_testing) { + androidTestImplementation (libs.hilt.android.testing) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - androidTestImplementation (libs.test_ext_junit) { + androidTestImplementation (libs.test.ext.junit) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - androidTestImplementation (libs.test_rules) { + androidTestImplementation (libs.test.rules) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } - androidTestImplementation (libs.test_runner) { + androidTestImplementation (libs.test.runner) { exclude group: 'org.hamcrest', module: 'hamcrest-core' } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..63d3c106 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,112 @@ +[versions] +# ======================================== +# Library Versions +# ======================================== +# https://mvnrepository.com/artifact/androidx.room/room-compiler +# https://mvnrepository.com/artifact/androidx.room/room-runtime +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/room/room-compiler/ +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/room/room-runtime/ +room = "2.7.0-beta01" +# https://mvnrepository.com/artifact/com.google.dagger/hilt-android +# https://mvnrepository.com/artifact/com.google.dagger/hilt-compiler +# https://android.googlesource.com/platform/external/dagger2 +hilt = "2.55" +# https://mvnrepository.com/artifact/io.github.takahirom.roborazzi/roborazzi +roborazzi = "1.50.0" +# https://mvnrepository.com/artifact/androidx.test.espresso/espresso-core +# https://mvnrepository.com/artifact/androidx.test.espresso/espresso-contrib +espresso = "3.7.0" + +# ======================================== +# Plugin Versions +# ======================================== +# https://mvnrepository.com/artifact/com.android.application/com.android.application.gradle.plugin +# https://mvnrepository.com/artifact/com.android.library/com.android.library.gradle.plugin +agp = "8.10.1" +# https://plugins.gradle.org/plugin/org.jetbrains.kotlin.android +kotlin = "2.1.10" +# https://mvnrepository.com/artifact/net.ltgt.errorprone/net.ltgt.errorprone.gradle.plugin +errorprone = "4.2.0" +# https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kover-gradle-plugin +kover = "0.9.1" + +[libraries] +# https://mvnrepository.com/artifact/androidx.activity/activity +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/activity/activity/ +activity = { module = "androidx.activity:activity", version = "1.11.0-alpha01" } +# https://mvnrepository.com/artifact/androidx.annotation/annotation +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/annotation/annotation-jvm/ +annotation = { module = "androidx.annotation:annotation", version = "1.9.0-rc01" } +# https://mvnrepository.com/artifact/androidx.appcompat/appcompat +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/appcompat/appcompat/ +appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.1" } # TODO: AOSP sources use 1.8.0-alpha01; upgrade when available in Maven Central } +# https://mvnrepository.com/artifact/androidx.arch.core/core-testing +arch-core-testing = { module = "androidx.arch.core:core-testing", version = "2.2.0" } +# https://mvnrepository.com/artifact/org.awaitility/awaitility +awaitility = { module = "org.awaitility:awaitility", version = "4.3.0" } +# https://mvnrepository.com/artifact/androidx.biometric/biometric +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/biometric/biometric/ +biometric = { module = "androidx.biometric:biometric", version = "1.4.0-alpha02" } +# https://mvnrepository.com/artifact/androidx.collection/collection +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/collection/collection-jvm/ +collection = { module = "androidx.collection:collection", version = "1.5.0-beta03" } +# https://mvnrepository.com/artifact/androidx.coordinatorlayout/coordinatorlayout +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/coordinatorlayout/coordinatorlayout/ +coordinatorlayout = { module = "androidx.coordinatorlayout:coordinatorlayout", version = "1.3.0-alpha02" } +# https://mvnrepository.com/artifact/androidx.core/core +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/core/core/ +core = { module = "androidx.core:core", version = "1.16.0-beta01" } +# https://mvnrepository.com/artifact/com.google.errorprone/error_prone_core +errorprone = { module = "com.google.errorprone:error_prone_core", version = "2.42.0" } +# https://mvnrepository.com/artifact/androidx.test.espresso/espresso-core +espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" } +espresso-contrib = { module = "androidx.test.espresso:espresso-contrib", version.ref = "espresso" } +# https://mvnrepository.com/artifact/org.hamcrest/hamcrest +hamcrest = { module = "org.hamcrest:hamcrest", version = "3.0" } +hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } +hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } +hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } +# https://mvnrepository.com/artifact/junit/junit +junit = { module = "junit:junit", version = "4.13.2" } +# https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-livedata +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/lifecycle/lifecycle-livedata/ +livedata = { module = "androidx.lifecycle:lifecycle-livedata", version = "2.9.0-alpha12" } +# https://mvnrepository.com/artifact/com.google.android.material/material +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/extras/material-design-x/com/google/android/material/material/ +material = { module = "com.google.android.material:material", version = "1.13.0-alpha08" } +# https://mvnrepository.com/artifact/org.mockito/mockito-core +mockito = { module = "org.mockito:mockito-core", version = "5.20.0" } +# https://mvnrepository.com/artifact/androidx.preference/preference +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/preference/preference/ +preference = { module = "androidx.preference:preference", version = "1.2.1" } # TODO AOSP sources use 1.3.0-alpha01; upgrade when available in Maven Central } +# https://mvnrepository.com/artifact/androidx.recyclerview/recyclerview +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/recyclerview/recyclerview/ +recyclerview = { module = "androidx.recyclerview:recyclerview", version = "1.4.0" } # TODO AOSP sources use 1.5.0-alpha01; upgrade when available in Maven Central } +# https://mvnrepository.com/artifact/org.robolectric/robolectric +robolectric = { module = "org.robolectric:robolectric", version = "4.16" } +roborazzi = { module = "io.github.takahirom.roborazzi:roborazzi", version.ref = "roborazzi" } +roborazzi-junit_rule = { module = "io.github.takahirom.roborazzi:roborazzi-junit-rule", version.ref = "roborazzi" } +# https://mvnrepository.com/artifact/org.robolectric/android-all +robolectric-androidAll = { module = "org.robolectric:android-all", version = "16-robolectric-13921718" } +room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } +room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } +room-testing = { module = "androidx.room:room-testing", version.ref = "room" } +# https://mvnrepository.com/artifact/androidx.test/core +test-core = { module = "androidx.test:core", version = "1.7.0" } +# https://mvnrepository.com/artifact/androidx.test.ext/junit +test-ext-junit = { module = "androidx.test.ext:junit", version = "1.3.0" } +# https://mvnrepository.com/artifact/androidx.test/rules +test-rules = { module = "androidx.test:rules", version = "1.7.0" } +# https://mvnrepository.com/artifact/androidx.test/runner +test-runner = { module = "androidx.test:runner", version = "1.7.0" } +# https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-viewmodel +# https://android.googlesource.com/platform/prebuilts/sdk/+/refs/heads/main/current/androidx/m2repository/androidx/lifecycle/lifecycle-viewmodel-android/ +viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version = "2.9.0-alpha12" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +android-library = { id = "com.android.library", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +errorprone = { id = "net.ltgt.errorprone", version.ref = "errorprone" } +kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } +roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }