1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-10-28 05:47:39 +00:00

Migrate to build version catalog

Ref: https://developer.android.com/build/migrate-to-catalogs

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-10-15 12:58:54 +08:00
parent d99435c4ad
commit 15089245bb
3 changed files with 206 additions and 97 deletions

View File

@@ -4,11 +4,11 @@
*/ */
plugins { plugins {
id("com.android.application") alias(libs.plugins.android.application)
id("kotlin-android") alias(libs.plugins.jetbrains.kotlin.android)
id("kotlin-kapt") alias(libs.plugins.jetbrains.kotlin.kapt)
id("kotlin-parcelize") alias(libs.plugins.jetbrains.kotlin.parcelize)
id("org.sonarqube") alias(libs.plugins.sonarqube)
checkstyle checkstyle
} }
@@ -126,28 +126,14 @@ android {
} }
} }
val checkstyleVersion = "10.12.1" // Custom dependency configuration for ktlint
val androidxLifecycleVersion = "2.6.2"
val androidxRoomVersion = "2.6.1"
val androidxWorkVersion = "2.8.1"
val stateSaverVersion = "1.4.1"
val exoPlayerVersion = "2.18.7"
val googleAutoServiceVersion = "1.1.1"
val groupieVersion = "2.10.1"
val markwonVersion = "4.6.2"
val leakCanaryVersion = "2.12"
val stethoVersion = "1.6.0"
val ktlint by configurations.creating val ktlint by configurations.creating
checkstyle { checkstyle {
configDirectory = rootProject.file("checkstyle") configDirectory = rootProject.file("checkstyle")
isIgnoreFailures = false isIgnoreFailures = false
isShowViolations = true isShowViolations = true
toolVersion = checkstyleVersion toolVersion = libs.versions.checkstyle.get()
} }
tasks.register<Checkstyle>("runCheckstyle") { tasks.register<Checkstyle>("runCheckstyle") {
@@ -208,113 +194,106 @@ sonar {
dependencies { dependencies {
/** Desugaring **/ /** Desugaring **/
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs_nio:2.0.4") coreLibraryDesugaring(libs.android.desugar)
/** NewPipe libraries **/ /** NewPipe libraries **/
implementation("com.github.TeamNewPipe:nanojson:e9d656ddb49a412a5a0a5d5ef20ca7ef09549996") implementation(libs.newpipe.nanojson)
// WORKAROUND: if you get errors with the NewPipeExtractor dependency, replace `v0.24.3` with implementation(libs.newpipe.extractor)
// the corresponding commit hash, since JitPack sometimes deletes artifacts. implementation(libs.newpipe.filepicker)
// If theres already a git hash, just add more of it to the end (or remove a letter)
// to cause jitpack to regenerate the artifact.
implementation("com.github.TeamNewPipe:NewPipeExtractor:0023b22095a2d62a60cdfc87f4b5cd85c8b266c3")
implementation("com.github.TeamNewPipe:NoNonsense-FilePicker:5.0.0")
/** Checkstyle **/ /** Checkstyle **/
checkstyle("com.puppycrawl.tools:checkstyle:$checkstyleVersion") checkstyle(libs.puppycrawl.checkstyle)
ktlint("com.pinterest:ktlint:0.45.2") ktlint(libs.pinterest.ktlint)
/** AndroidX **/ /** AndroidX **/
implementation("androidx.appcompat:appcompat:1.7.1") implementation(libs.androidx.appcompat)
implementation("androidx.cardview:cardview:1.0.0") implementation(libs.androidx.cardview)
implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation(libs.androidx.constraintlayout)
implementation("androidx.core:core-ktx:1.12.0") implementation(libs.androidx.core)
implementation("androidx.documentfile:documentfile:1.0.1") implementation(libs.androidx.documentfile)
implementation("androidx.fragment:fragment-ktx:1.6.2") implementation(libs.androidx.fragment)
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$androidxLifecycleVersion") implementation(libs.androidx.lifecycle.livedata)
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$androidxLifecycleVersion") implementation(libs.androidx.lifecycle.viewmodel)
implementation("androidx.localbroadcastmanager:localbroadcastmanager:1.1.0") implementation(libs.androidx.localbroadcastmanager)
implementation("androidx.media:media:1.7.0") implementation(libs.androidx.media)
implementation("androidx.preference:preference:1.2.1") implementation(libs.androidx.preference)
implementation("androidx.recyclerview:recyclerview:1.3.2") implementation(libs.androidx.recyclerview)
implementation("androidx.room:room-runtime:$androidxRoomVersion") implementation(libs.androidx.room.runtime)
implementation("androidx.room:room-rxjava3:$androidxRoomVersion") implementation(libs.androidx.room.rxjava3)
kapt("androidx.room:room-compiler:$androidxRoomVersion") kapt(libs.androidx.room.compiler)
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") implementation(libs.androidx.swiperefreshlayout)
// Newer version specified to prevent accessibility regressions with RecyclerView, see: implementation(libs.androidx.viewpager2)
// https://developer.android.com/jetpack/androidx/releases/viewpager2#1.1.0-alpha01 implementation(libs.androidx.work.runtime)
implementation("androidx.viewpager2:viewpager2:1.1.0-beta02") implementation(libs.androidx.work.rxjava3)
implementation("androidx.work:work-runtime-ktx:$androidxWorkVersion") implementation(libs.google.android.material)
implementation("androidx.work:work-rxjava3:$androidxWorkVersion") implementation(libs.androidx.webkit)
implementation("com.google.android.material:material:1.11.0")
implementation("androidx.webkit:webkit:1.9.0")
/** Third-party libraries **/ /** Third-party libraries **/
implementation("com.github.livefront:bridge:v2.0.2") implementation(libs.livefront.bridge)
implementation("com.evernote:android-state:$stateSaverVersion") implementation(libs.evernote.statesaver.core)
kapt("com.evernote:android-state-processor:$stateSaverVersion") kapt(libs.evernote.statesaver.compiler)
// HTML parser // HTML parser
implementation("org.jsoup:jsoup:1.17.2") implementation(libs.jsoup)
// HTTP client // HTTP client
implementation("com.squareup.okhttp3:okhttp:4.12.0") implementation(libs.squareup.okhttp)
// Media player // Media player
implementation("com.google.android.exoplayer:exoplayer-core:$exoPlayerVersion") implementation(libs.google.exoplayer.core)
implementation("com.google.android.exoplayer:exoplayer-dash:$exoPlayerVersion") implementation(libs.google.exoplayer.dash)
implementation("com.google.android.exoplayer:exoplayer-database:$exoPlayerVersion") implementation(libs.google.exoplayer.database)
implementation("com.google.android.exoplayer:exoplayer-datasource:$exoPlayerVersion") implementation(libs.google.exoplayer.datasource)
implementation("com.google.android.exoplayer:exoplayer-hls:$exoPlayerVersion") implementation(libs.google.exoplayer.hls)
implementation("com.google.android.exoplayer:exoplayer-smoothstreaming:$exoPlayerVersion") implementation(libs.google.exoplayer.mediasession)
implementation("com.google.android.exoplayer:exoplayer-ui:$exoPlayerVersion") implementation(libs.google.exoplayer.smoothstreaming)
implementation("com.google.android.exoplayer:extension-mediasession:$exoPlayerVersion") implementation(libs.google.exoplayer.ui)
// Metadata generator for service descriptors // Metadata generator for service descriptors
compileOnly("com.google.auto.service:auto-service-annotations:$googleAutoServiceVersion") compileOnly(libs.google.autoservice.annotations)
kapt("com.google.auto.service:auto-service:$googleAutoServiceVersion") kapt(libs.google.autoservice.compiler)
// Manager for complex RecyclerView layouts // Manager for complex RecyclerView layouts
implementation("com.github.lisawray.groupie:groupie:$groupieVersion") implementation(libs.lisawray.groupie.core)
implementation("com.github.lisawray.groupie:groupie-viewbinding:$groupieVersion") implementation(libs.lisawray.groupie.viewbinding)
// Image loading // Image loading
//noinspection NewerVersionAvailable,GradleDependency --> 2.8 is the last version, not 2.71828! implementation(libs.squareup.picasso)
implementation("com.squareup.picasso:picasso:2.8")
// Markdown library for Android // Markdown library for Android
implementation("io.noties.markwon:core:$markwonVersion") implementation(libs.noties.markwon.core)
implementation("io.noties.markwon:linkify:$markwonVersion") implementation(libs.noties.markwon.linkify)
// Crash reporting // Crash reporting
implementation("ch.acra:acra-core:5.11.3") implementation(libs.acra.core)
// Properly restarting // Properly restarting
implementation("com.jakewharton:process-phoenix:2.1.2") implementation(libs.jakewharton.phoenix)
// Reactive extensions for Java VM // Reactive extensions for Java VM
implementation("io.reactivex.rxjava3:rxjava:3.1.8") implementation(libs.reactivex.rxjava)
implementation("io.reactivex.rxjava3:rxandroid:3.0.2") implementation(libs.reactivex.rxandroid)
// RxJava binding APIs for Android UI widgets // RxJava binding APIs for Android UI widgets
implementation("com.jakewharton.rxbinding4:rxbinding:4.0.0") implementation(libs.jakewharton.rxbinding)
// Date and time formatting // Date and time formatting
implementation("org.ocpsoft.prettytime:prettytime:5.0.8.Final") implementation(libs.ocpsoft.prettytime)
/** Debugging **/ /** Debugging **/
// Memory leak detection // Memory leak detection
debugImplementation("com.squareup.leakcanary:leakcanary-object-watcher-android:$leakCanaryVersion") debugImplementation(libs.squareup.leakcanary.watcher)
debugImplementation("com.squareup.leakcanary:plumber-android:$leakCanaryVersion") debugImplementation(libs.squareup.leakcanary.plumber)
debugImplementation("com.squareup.leakcanary:leakcanary-android-core:$leakCanaryVersion") debugImplementation(libs.squareup.leakcanary.core)
// Debug bridge for Android // Debug bridge for Android
debugImplementation("com.facebook.stetho:stetho:$stethoVersion") debugImplementation(libs.facebook.stetho.core)
debugImplementation("com.facebook.stetho:stetho-okhttp3:$stethoVersion") debugImplementation(libs.facebook.stetho.okhttp3)
/** Testing **/ /** Testing **/
testImplementation("junit:junit:4.13.2") testImplementation(libs.junit)
testImplementation("org.mockito:mockito-core:5.6.0") testImplementation(libs.mockito.core)
androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation(libs.androidx.junit)
androidTestImplementation("androidx.test:runner:1.5.2") androidTestImplementation(libs.androidx.runner)
androidTestImplementation("androidx.room:room-testing:$androidxRoomVersion") androidTestImplementation(libs.androidx.room.testing)
androidTestImplementation("org.assertj:assertj-core:3.24.2") androidTestImplementation(libs.assertj.core)
} }

View File

@@ -4,9 +4,9 @@
*/ */
plugins { plugins {
id("com.android.application") version "8.13.0" apply false alias(libs.plugins.android.application) apply false
id("org.jetbrains.kotlin.android") version "1.9.25" apply false alias(libs.plugins.jetbrains.kotlin.android) apply false
id("org.jetbrains.kotlin.kapt") version "1.9.25" apply false alias(libs.plugins.jetbrains.kotlin.kapt) apply false
id("org.jetbrains.kotlin.plugin.parcelize") version "1.9.25" apply false alias(libs.plugins.jetbrains.kotlin.parcelize) apply false
id("org.sonarqube") version "4.0.0.2929" apply false alias(libs.plugins.sonarqube) apply false
} }

130
gradle/libs.versions.toml Normal file
View File

@@ -0,0 +1,130 @@
#
# SPDX-FileCopyrightText: 2025 NewPipe e.V. <https://newpipe-ev.de>
# SPDX-License-Identifier: GPL-3.0-or-later
#
[versions]
acra = "5.11.3"
agp = "8.13.0"
appcompat = "1.7.1"
assertj = "3.24.2"
autoservice = "1.1.1"
bridge = "v2.0.2"
cardview = "1.0.0"
checkstyle = "10.12.1"
constraintlayout = "2.1.4"
core = "1.12.0"
desugar = "2.0.4"
documentfile = "1.0.1"
exoplayer = "2.18.7"
extractor = "0023b22095a2d62a60cdfc87f4b5cd85c8b266c3"
filepicker = "5.0.0"
fragment = "1.6.2"
groupie = "2.10.1"
jsoup = "1.17.2"
junit = "4.13.2"
junit-ext = "1.1.5"
kotlin = "1.9.25"
ktlint = "0.45.2"
leakcanary = "2.12"
lifecycle = "2.6.2"
localbroadcastmanager = "1.1.0"
markwon = "4.6.2"
material = "1.11.0"
media = "1.7.0"
mockitoCore = "5.6.0"
nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996"
okhttp = "4.12.0"
phoenix = "2.1.2"
#noinspection NewerVersionAvailable,GradleDependency --> 2.8 is the last version, not 2.71828!
picasso = "2.8"
preference = "1.2.1"
prettytime = "5.0.8.Final"
recyclerview = "1.3.2"
room = "2.6.1"
runner = "1.5.2"
rxandroid = "3.0.2"
rxbinding = "4.0.0"
rxjava = "3.1.8"
sonarqube = "4.0.0.2929"
statesaver = "1.4.1"
stetho = "1.6.0"
swiperefreshlayout = "1.1.0"
# Newer version specified to prevent accessibility regressions with RecyclerView
# see: https://developer.android.com/jetpack/androidx/releases/viewpager2#1.1.0-alpha01
viewpager2 = "1.1.0-beta02"
webkit = "1.9.0"
work = "2.8.1"
[libraries]
acra-core = { module = "ch.acra:acra-core", version.ref = "acra" }
android-desugar = { module = "com.android.tools:desugar_jdk_libs_nio", version.ref = "desugar" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
androidx-cardview = { module = "androidx.cardview:cardview", version.ref = "cardview" }
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }
androidx-core = { module = "androidx.core:core-ktx", version.ref = "core" }
androidx-documentfile = { module = "androidx.documentfile:documentfile", version.ref = "documentfile" }
androidx-fragment = { module = "androidx.fragment:fragment-ktx", version.ref = "fragment" }
androidx-junit = { module = "androidx.test.ext:junit", version.ref = "junit-ext" }
androidx-lifecycle-livedata = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" }
androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
androidx-localbroadcastmanager = { module = "androidx.localbroadcastmanager:localbroadcastmanager", version.ref = "localbroadcastmanager" }
androidx-media = { module = "androidx.media:media", version.ref = "media" }
androidx-preference = { module = "androidx.preference:preference", version.ref = "preference" }
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
androidx-room-rxjava3 = { module = "androidx.room:room-rxjava3", version.ref = "room" }
androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "room" }
androidx-runner = { module = "androidx.test:runner", version.ref = "runner" }
androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "swiperefreshlayout" }
androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "viewpager2" }
androidx-webkit = { module = "androidx.webkit:webkit", version.ref = "webkit" }
androidx-work-runtime = { module = "androidx.work:work-runtime-ktx", version.ref = "work" }
androidx-work-rxjava3 = { module = "androidx.work:work-rxjava3", version.ref = "work" }
assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
evernote-statesaver-compiler = { module = "com.evernote:android-state-processor", version.ref = "statesaver" }
evernote-statesaver-core = { module = "com.evernote:android-state", version.ref = "statesaver" }
facebook-stetho-core = { module = "com.facebook.stetho:stetho", version.ref = "stetho" }
facebook-stetho-okhttp3 = { module = "com.facebook.stetho:stetho-okhttp3", version.ref = "stetho" }
google-android-material = { module = "com.google.android.material:material", version.ref = "material" }
google-autoservice-annotations = { module = "com.google.auto.service:auto-service-annotations", version.ref = "autoservice" }
google-autoservice-compiler = { module = "com.google.auto.service:auto-service", version.ref = "autoservice" }
google-exoplayer-core = { module = "com.google.android.exoplayer:exoplayer-core", version.ref = "exoplayer" }
google-exoplayer-dash = { module = "com.google.android.exoplayer:exoplayer-dash", version.ref = "exoplayer" }
google-exoplayer-database = { module = "com.google.android.exoplayer:exoplayer-database", version.ref = "exoplayer" }
google-exoplayer-datasource = { module = "com.google.android.exoplayer:exoplayer-datasource", version.ref = "exoplayer" }
google-exoplayer-hls = { module = "com.google.android.exoplayer:exoplayer-hls", version.ref = "exoplayer" }
google-exoplayer-mediasession = { module = "com.google.android.exoplayer:extension-mediasession", version.ref = "exoplayer" }
google-exoplayer-smoothstreaming = { module = "com.google.android.exoplayer:exoplayer-smoothstreaming", version.ref = "exoplayer" }
google-exoplayer-ui = { module = "com.google.android.exoplayer:exoplayer-ui", version.ref = "exoplayer" }
jakewharton-phoenix = { module = "com.jakewharton:process-phoenix", version.ref = "phoenix" }
jakewharton-rxbinding = { module = "com.jakewharton.rxbinding4:rxbinding", version.ref = "rxbinding" }
jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" }
junit = { module = "junit:junit", version.ref = "junit" }
lisawray-groupie-core = { module = "com.github.lisawray.groupie:groupie", version.ref = "groupie" }
lisawray-groupie-viewbinding = { module = "com.github.lisawray.groupie:groupie-viewbinding", version.ref = "groupie" }
livefront-bridge = { module = "com.github.livefront:bridge", version.ref = "bridge" }
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" }
newpipe-extractor = { module = "com.github.TeamNewPipe:NewPipeExtractor", version.ref = "extractor" }
newpipe-filepicker = { module = "com.github.TeamNewPipe:NoNonsense-FilePicker", version.ref = "filepicker" }
newpipe-nanojson = { module = "com.github.TeamNewPipe:nanojson", version.ref = "nanojson" }
noties-markwon-core = { module = "io.noties.markwon:core", version.ref = "markwon" }
noties-markwon-linkify = { module = "io.noties.markwon:linkify", version.ref = "markwon" }
ocpsoft-prettytime = { module = "org.ocpsoft.prettytime:prettytime", version.ref = "prettytime" }
pinterest-ktlint = { module = "com.pinterest:ktlint", version.ref = "ktlint" }
puppycrawl-checkstyle = { module = "com.puppycrawl.tools:checkstyle", version.ref = "checkstyle" }
reactivex-rxandroid = { module = "io.reactivex.rxjava3:rxandroid", version.ref = "rxandroid" }
reactivex-rxjava = { module = "io.reactivex.rxjava3:rxjava", version.ref = "rxjava" }
squareup-leakcanary-core = { module = "com.squareup.leakcanary:leakcanary-android-core", version.ref = "leakcanary" }
squareup-leakcanary-plumber = { module = "com.squareup.leakcanary:plumber-android", version.ref = "leakcanary" }
squareup-leakcanary-watcher = { module = "com.squareup.leakcanary:leakcanary-object-watcher-android", version.ref = "leakcanary" }
squareup-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
squareup-picasso = { module = "com.squareup.picasso:picasso", version.ref = "picasso" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
jetbrains-kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
jetbrains-kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" }