diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4a905e58..24df38aa 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("androidx.navigation.safeargs") + alias(libs.plugins.agp.app) + alias(libs.plugins.kotlin) + alias(libs.plugins.safeargs) id("kotlin-kapt") } @@ -17,7 +17,9 @@ android { targetSdk = 35 versionCode = 2 versionName = "1.0.8" + //testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + signingConfigs { create("release") { storeFile = file("release.jks") @@ -46,13 +48,16 @@ android { applicationIdSuffix = ".debug" } } + compileOptions { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } + kotlinOptions { jvmTarget = "21" } + buildFeatures { viewBinding = true } @@ -60,47 +65,44 @@ android { dependencies { - implementation("com.airbnb.android:lottie:6.6.2") - implementation("androidx.core:core-ktx:1.15.0") - implementation("androidx.appcompat:appcompat:1.7.0") - implementation("com.google.android.material:material:1.12.0") - implementation("androidx.constraintlayout:constraintlayout:2.2.0") - implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.8.7") - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") - implementation("androidx.navigation:navigation-fragment-ktx:2.8.5") - implementation("androidx.navigation:navigation-ui-ktx:2.8.5") - implementation("androidx.preference:preference-ktx:1.2.1") - implementation("androidx.legacy:legacy-support-v4:1.0.0") - implementation("androidx.preference:preference-ktx:1.2.1") - - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.1") - - val room_version = "2.6.1" - implementation("androidx.room:room-runtime:$room_version") - annotationProcessor("androidx.room:room-compiler:$room_version") + implementation(libs.airbnb.lottie) + + implementation(libs.core.ktx) + implementation(libs.preference.ktx) + implementation(libs.kotlinx.coroutines) + implementation(libs.androidx.appcompat) + implementation(libs.navigation.fragment.ktx) + implementation(libs.navigation.ui.ktx) + implementation(libs.lifecycle.livedata.ktx) + implementation(libs.lifecycle.viewmodel.ktx) + implementation(libs.legacy.support) + implementation(libs.android.constraintlayout) + implementation(libs.google.material) + + implementation(libs.room.runtime) + annotationProcessor(libs.room.compiler) // To use Kotlin annotation processing tool (kapt) - kapt("androidx.room:room-compiler:$room_version") + kapt(libs.room.compiler) // To use Kotlin Symbol Processing (KSP) - //ksp("androidx.room:room-compiler:$room_version") + //ksp(libs.room.compiler) // optional - Kotlin Extensions and Coroutines support for Room - //implementation("androidx.room:room-ktx:$room_version") + //implementation(libs.room.ktx) // optional - RxJava2 support for Room - //implementation("androidx.room:room-rxjava2:$room_version") + //implementation(libs.room.rxjava2) // optional - RxJava3 support for Room - implementation("androidx.room:room-rxjava3:$room_version") + implementation(libs.room.rxjava3) // optional - Guava support for Room, including Optional and ListenableFuture - //implementation("androidx.room:room-guava:$room_version") + //implementation(libs.room.guava) // optional - Test helpers - //testImplementation("androidx.room:room-testing:$room_version") + //testImplementation(libs.room.testing) // optional - Paging 3 Integration - //implementation("androidx.room:room-paging:$room_version") - + //implementation(libs.room.paging) } diff --git a/build.gradle.kts b/build.gradle.kts index db040591..36119de3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,16 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.8.0" apply false - id("org.jetbrains.kotlin.android") version "2.1.0" apply false - id("androidx.navigation.safeargs.kotlin") version "2.8.5" apply false -} - -buildscript { - repositories { - google() - } - dependencies { - val nav_version = "2.8.5" - classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") - } + alias(libs.plugins.agp.app) apply false + alias(libs.plugins.kotlin) apply false + alias(libs.plugins.safeargs) apply false } diff --git a/gradle.properties b/gradle.properties index b78b23fe..55cce922 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1024m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..2ac2d2cd --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,44 @@ +[versions] +agp = "8.8.0" +kotlin = "2.1.0" +core = "1.15.0" +preference = "1.2.1" +coroutines = "1.10.1" +appcompat = "1.7.0" +navigation = "2.8.5" +lifecycle = "2.8.7" +legacy = "1.0.0" +constraintlayout = "2.2.0" +material = "1.12.0" +room = "2.6.1" +lottie = "6.6.2" + +[plugins] +agp-app = { id = "com.android.application", version.ref = "agp" } +kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navigation" } + +[libraries] +airbnb-lottie = { group = "com.airbnb.android", name = "lottie", version.ref = "lottie" } + +core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core" } +preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "preference" } +kotlinx-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigation"} +navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigation" } +lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" } +lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" } +legacy-support = { group = "androidx.legacy", name = "legacy-support-v4", version.ref = "legacy" } + +android-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } +google-material = { group = "com.google.android.material", name = "material", version.ref = "material" } + +room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } +room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } +room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } +room-rxjava2 = { group = "androidx.room", name = "room-rxjava2", version.ref = "room" } +room-rxjava3 = { group = "androidx.room", name = "room-rxjava3", version.ref = "room" } +room-guava = { group = "androidx.room", name = "room-guava", version.ref = "room" } +room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" } +room-paging = { group = "androidx.room", name = "room-paging", version.ref = "room" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 2185fd4f..036aad37 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,5 +11,5 @@ dependencyResolutionManagement { } } -rootProject.name = "Bluetooth LE Spam" -include(":app") +rootProject.name = "Bluetooth-LE-Spam" +include("app")