diff --git a/app/build.gradle b/app/build.gradle index 66de11377..e8518890c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -96,16 +96,19 @@ android { } ext { - icepickVersion = '3.2.0' checkstyleVersion = '8.38' - stethoVersion = '1.5.1' - leakCanaryVersion = '2.5' - exoPlayerVersion = '2.13.2' + androidxLifecycleVersion = '2.2.0' androidxRoomVersion = '2.3.0-alpha03' + + icepickVersion = '3.2.0' + exoPlayerVersion = '2.13.2' + googleAutoServiceVersion = '1.0-rc7' groupieVersion = '2.8.1' markwonVersion = '4.6.0' - googleAutoServiceVersion = '1.0-rc7' + + leakCanaryVersion = '2.5' + stethoVersion = '1.5.1' mockitoVersion = '3.6.0' } @@ -171,82 +174,99 @@ sonarqube { } dependencies { +/** Desugaring **/ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1' +/** NewPipe libraries **/ + // You can use a local version by uncommenting a few lines in settings.gradle + implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.0' + +/** Checkstyle **/ + checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" + ktlint 'com.pinterest:ktlint:0.40.0' + +/** Kotlin **/ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}" - implementation "frankiesardo:icepick:${icepickVersion}" - kapt "frankiesardo:icepick-processor:${icepickVersion}" - - checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" - ktlint "com.pinterest:ktlint:0.40.0" - - debugImplementation "com.facebook.stetho:stetho:${stethoVersion}" - debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoVersion}" - - debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakCanaryVersion}" - implementation "com.squareup.leakcanary:leakcanary-object-watcher-android:${leakCanaryVersion}" - implementation "com.squareup.leakcanary:plumber-android:${leakCanaryVersion}" - - implementation "androidx.multidex:multidex:2.0.1" - - // NewPipe dependencies - // You can use a local version by uncommenting a few lines in settings.gradle - implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.0' - implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751" - - implementation "org.jsoup:jsoup:1.13.1" - - //noinspection GradleDependency --> do not update okhttp to keep supporting Android 4.4 users - implementation "com.squareup.okhttp3:okhttp:3.12.13" - - implementation "com.google.android.exoplayer:exoplayer:${exoPlayerVersion}" - implementation "com.google.android.exoplayer:extension-mediasession:${exoPlayerVersion}" - - implementation "com.google.android.material:material:1.2.1" - - compileOnly "com.google.auto.service:auto-service-annotations:${googleAutoServiceVersion}" - kapt "com.google.auto.service:auto-service:${googleAutoServiceVersion}" - - implementation "androidx.appcompat:appcompat:1.2.0" - implementation "androidx.preference:preference:1.1.1" - implementation "androidx.recyclerview:recyclerview:1.1.0" - implementation "androidx.cardview:cardview:1.0.0" - implementation "androidx.constraintlayout:constraintlayout:2.0.4" +/** AndroidX **/ + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.cardview:cardview:1.0.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.documentfile:documentfile:1.0.1' - implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' - implementation 'androidx.media:media:1.2.1' - implementation 'androidx.webkit:webkit:1.4.0' - implementation "androidx.lifecycle:lifecycle-livedata:${androidxLifecycleVersion}" implementation "androidx.lifecycle:lifecycle-viewmodel:${androidxLifecycleVersion}" - + implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' + implementation 'androidx.media:media:1.2.1' + implementation 'androidx.multidex:multidex:2.0.1' + implementation 'androidx.preference:preference:1.1.1' + implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation "androidx.room:room-runtime:${androidxRoomVersion}" implementation "androidx.room:room-rxjava3:${androidxRoomVersion}" kapt "androidx.room:room-compiler:${androidxRoomVersion}" + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + implementation 'androidx.webkit:webkit:1.4.0' + implementation 'com.google.android.material:material:1.2.1' - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" +/** Third-party libraries **/ + // Instance state boilerplate elimination + implementation "frankiesardo:icepick:${icepickVersion}" + kapt "frankiesardo:icepick-processor:${icepickVersion}" + // HTML parser + implementation "org.jsoup:jsoup:1.13.1" + + // HTTP client + //noinspection GradleDependency --> do not update okhttp to keep supporting Android 4.4 users + implementation "com.squareup.okhttp3:okhttp:3.12.13" + + // Media player + implementation "com.google.android.exoplayer:exoplayer:${exoPlayerVersion}" + implementation "com.google.android.exoplayer:extension-mediasession:${exoPlayerVersion}" + + // Metadata generator for service descriptors + compileOnly "com.google.auto.service:auto-service-annotations:${googleAutoServiceVersion}" + kapt "com.google.auto.service:auto-service:${googleAutoServiceVersion}" + + // Manager for complex RecyclerView layouts implementation "com.xwray:groupie:${groupieVersion}" implementation "com.xwray:groupie-viewbinding:${groupieVersion}" + // Circular ImageView implementation "de.hdodenhof:circleimageview:3.1.0" + // Image loading implementation "com.nostra13.universalimageloader:universal-image-loader:1.9.5" + // Markdown library for Android implementation "io.noties.markwon:core:${markwonVersion}" implementation "io.noties.markwon:linkify:${markwonVersion}" + // File picker implementation "com.nononsenseapps:filepicker:4.2.1" + // Crash reporting implementation "ch.acra:acra-core:5.7.0" + // Reactive extensions for Java VM implementation "io.reactivex.rxjava3:rxjava:3.0.7" implementation "io.reactivex.rxjava3:rxandroid:3.0.0" + // RxJava binding APIs for Android UI widgets implementation "com.jakewharton.rxbinding4:rxbinding:4.0.0" + // Date and time formatting implementation "org.ocpsoft.prettytime:prettytime:5.0.0.Final" +/** Debugging **/ + // Memory leak detection + implementation "com.squareup.leakcanary:leakcanary-object-watcher-android:${leakCanaryVersion}" + implementation "com.squareup.leakcanary:plumber-android:${leakCanaryVersion}" + debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakCanaryVersion}" + // Debug bridge for Android + debugImplementation "com.facebook.stetho:stetho:${stethoVersion}" + debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoVersion}" + +/** Testing **/ testImplementation 'junit:junit:4.13.1' testImplementation "org.mockito:mockito-core:${mockitoVersion}" testImplementation "org.mockito:mockito-inline:${mockitoVersion}"