diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 42a18684..25aa4f0c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,16 +1,15 @@ import java.io.ByteArrayOutputStream plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("com.google.devtools.ksp") - id("com.google.dagger.hilt.android") - kotlin("plugin.serialization") version "2.0.10" - id("com.google.gms.google-services") version "4.4.2" - id("com.google.firebase.crashlytics") version "3.0.2" + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.ksp) + alias(libs.plugins.hilt) + alias(libs.plugins.kotlinx.serialization) + alias(libs.plugins.gms) + alias(libs.plugins.crashlytics) } - val gitHash = execute("git", "rev-parse", "HEAD").take(7) val gitCount = execute("git", "rev-list", "--count", "HEAD").toInt() @@ -47,53 +46,47 @@ android { dependencies { implementation(project(":common")) - implementation("com.github.jeelpatel231:plugger:82e00ea5a4") + implementation(libs.plugger) - implementation("androidx.appcompat:appcompat:1.7.0") + implementation(libs.appcompat) - implementation("androidx.constraintlayout:constraintlayout:2.2.0") - implementation("androidx.recyclerview:recyclerview:1.3.2") - implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") + implementation(libs.constraintlayout) + implementation(libs.recyclerview) + implementation(libs.swiperefresh) - implementation("androidx.fragment:fragment-ktx:1.6.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") - implementation("androidx.paging:paging-common-ktx:3.3.5") - implementation("androidx.paging:paging-runtime-ktx:3.3.5") - implementation("androidx.preference:preference-ktx:1.2.1") + implementation(libs.fragment) + implementation(libs.lifecycle.viewmodel) + implementation(libs.bundles.paging) + implementation(libs.preference) - implementation("androidx.room:room-runtime:2.6.1") - implementation("androidx.room:room-ktx:2.6.1") - ksp("androidx.room:room-compiler:2.6.1") + implementation(libs.room.runtime) + implementation(libs.room.ktx) + ksp(libs.room.compiler) - implementation("androidx.media3:media3-exoplayer:1.5.1") - implementation("androidx.media3:media3-session:1.5.1") - implementation("androidx.media3:media3-ui:1.5.1") - implementation("androidx.media3:media3-exoplayer-dash:1.5.1") - implementation("androidx.media3:media3-exoplayer-hls:1.5.1") + implementation(libs.bundles.media3) - implementation("androidx.core:core-splashscreen:1.0.1") - implementation("androidx.palette:palette-ktx:1.0.0") + implementation(libs.splashscreen) + implementation(libs.palette) - implementation("com.google.android.material:material:1.13.0-alpha09") + implementation(libs.material) - implementation("com.google.dagger:hilt-android:2.48.1") - ksp("com.google.dagger:hilt-android-compiler:2.48.1") + implementation(libs.hilt) + ksp(libs.hilt.compiler) - implementation("io.coil-kt.coil3:coil:3.0.0-rc01") - implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc01") + implementation(libs.bundles.coil) - implementation("com.github.madrapps:pikolo:2.0.2") - implementation("com.github.bosphere.android-fadingedgelayout:fadingedgelayout:1.0.0") - implementation("me.zhanghai.android.fastscroll:library:1.3.0") - implementation("com.flaviofaria:kenburnsview:1.0.7") - implementation("com.telefonica:nestedscrollwebview:0.1.6") + implementation(libs.pikolo) + implementation(libs.fadingedgelayout) + implementation(libs.fastscroll) + implementation(libs.kenburnsview) + implementation(libs.nestedscrollwebview) - implementation(platform("com.google.firebase:firebase-bom:33.7.0")) - implementation("com.google.firebase:firebase-analytics") - implementation("com.google.firebase:firebase-crashlytics") + implementation(platform(libs.firebase.bom)) + implementation(libs.firebase.analytics) + implementation(libs.firebase.crashlytics) - testImplementation("org.jetbrains.kotlin:kotlin-reflect:1.9.24") - testImplementation("junit:junit:4.13.2") + testImplementation(libs.kotlin.reflect) + testImplementation(libs.junit) } fun execute(vararg command: String): String { diff --git a/build.gradle.kts b/build.gradle.kts index 3ecd408c..7c6c8771 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,8 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.2.2" apply false - id("org.jetbrains.kotlin.android") version "1.9.21" apply false - id("com.google.devtools.ksp") version "2.0.0-1.0.23" apply false - id("com.google.dagger.hilt.android") version "2.48.1" apply false - id("org.jetbrains.kotlin.jvm") version "2.0.0" apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.hilt) apply false } \ No newline at end of file diff --git a/common/build.gradle.kts b/common/build.gradle.kts index c54ff88f..82edfa71 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("java-library") - id("org.jetbrains.kotlin.jvm") - kotlin("plugin.serialization") version "2.0.10" + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlinx.serialization) id("maven-publish") } @@ -15,9 +15,9 @@ kotlin { } dependencies { - api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1") - api("com.squareup.okhttp3:okhttp:5.0.0-alpha.14") - api("io.ktor:ktor-utils:3.0.0-beta-2") + api(libs.kotlinx.serialization.json) + api(libs.okhttp) + api(libs.ktor.utils) } publishing { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..8529eca4 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,81 @@ +[versions] +agp = "8.2.2" +kotlin = "2.0.10" +okhttp = "5.0.0-alpha.14" +ktor = "3.0.0-beta-2" +kotlinx-serialization = "1.7.1" +firebase-bom = "33.7.0" +androidx-paging = "3.3.5" +room = "2.6.1" +media3 = "1.5.1" +hilt = "2.48.1" +coil = "3.0.0-rc01" +junit = "4.13.2" + +[libraries] +appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.0" } +constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version = "2.2.0" } +recyclerview = { module = "androidx.recyclerview:recyclerview", version = "1.3.2" } +swiperefresh = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version = "1.1.0" } + +fragment = { module = "androidx.fragment:fragment-ktx", version = "1.6.2" } +lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version = "2.8.7" } + +paging-common = { module = "androidx.paging:paging-common-ktx", version.ref = "androidx-paging" } +paging-runtime = { module = "androidx.paging:paging-runtime-ktx", version.ref = "androidx-paging" } + +preference = { module = "androidx.preference:preference-ktx", version = "1.2.1" } + +room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } +room-ktx = { module = "androidx.room:room-ktx" } +room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } + +media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" } +media3-session = { module = "androidx.media3:media3-session", version.ref = "media3" } +media3-ui = { module = "androidx.media3:media3-ui", version.ref = "media3" } +media3-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "media3" } +media3-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "media3" } + +splashscreen = { module = "androidx.core:core-splashscreen", version = "1.0.1" } +palette = { module = "androidx.palette:palette-ktx", version = "1.0.0" } + +material = { module = "com.google.android.material:material", version = "1.13.0-alpha09" } + +hilt = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } +hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } + +coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" } +coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } + +pikolo = { module = "com.github.madrapps:pikolo", version = "2.0.2" } +fadingedgelayout = { module = "com.github.bosphere.android-fadingedgelayout:fadingedgelayout", version = "1.0.0" } +fastscroll = { module = "me.zhanghai.android.fastscroll:library", version = "1.3.0" } +kenburnsview = { module = "com.flaviofaria:kenburnsview", version = "1.0.7" } +nestedscrollwebview = { module = "com.telefonica:nestedscrollwebview", version = "0.1.6" } + +firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-bom" } +firebase-analytics = { module = "com.google.firebase:firebase-analytics" } +firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" } + +plugger = { module = "com.github.jeelpatel231:plugger", version = "82e00ea5a4" } +ktor-utils = { module = "io.ktor:ktor-utils", version.ref = "ktor" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } + +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } +junit = { module = "junit:junit", version.ref = "junit" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +gms = { id = "com.google.gms.google-services", version = "4.4.2" } +crashlytics = { id = "com.google.firebase.crashlytics", version = "3.0.2" } +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +ksp = { id = "com.google.devtools.ksp", version = "2.0.10-1.0.24" } + +[bundles] +paging = ["paging-common", "paging-runtime"] +media3 = ["media3-exoplayer", "media3-session", "media3-ui", "media3-dash", "media3-hls"] +coil = ["coil", "coil-network-okhttp"] \ No newline at end of file