@@ -96,16 +96,19 @@ android {
9696}
9797
9898ext {
99- icepickVersion = ' 3.2.0'
10099 checkstyleVersion = ' 8.38'
101- stethoVersion = ' 1.5.1'
102- leakCanaryVersion = ' 2.5'
103- exoPlayerVersion = ' 2.13.2'
100+
104101 androidxLifecycleVersion = ' 2.2.0'
105102 androidxRoomVersion = ' 2.3.0-alpha03'
103+
104+ icepickVersion = ' 3.2.0'
105+ exoPlayerVersion = ' 2.13.2'
106+ googleAutoServiceVersion = ' 1.0-rc7'
106107 groupieVersion = ' 2.8.1'
107108 markwonVersion = ' 4.6.0'
108- googleAutoServiceVersion = ' 1.0-rc7'
109+
110+ leakCanaryVersion = ' 2.5'
111+ stethoVersion = ' 1.5.1'
109112 mockitoVersion = ' 3.6.0'
110113}
111114
@@ -171,82 +174,99 @@ sonarqube {
171174}
172175
173176dependencies {
177+ /* * Desugaring **/
174178 coreLibraryDesugaring ' com.android.tools:desugar_jdk_libs:1.1.1'
175179
176- implementation " org.jetbrains.kotlin:kotlin-stdlib-jdk8: ${ kotlin_version } "
177-
178- implementation " frankiesardo:icepick: ${ icepickVersion } "
179- kapt " frankiesardo:icepick-processor: ${ icepickVersion } "
180+ /* * NewPipe libraries * */
181+ // You can use a local version by uncommenting a few lines in settings.gradle
182+ implementation ' com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751 '
183+ implementation ' com.github.TeamNewPipe:NewPipeExtractor:v0.21.0 '
180184
185+ /* * Checkstyle **/
181186 checkstyle " com.puppycrawl.tools:checkstyle:${ checkstyleVersion} "
182- ktlint " com.pinterest:ktlint:0.40.0"
183-
184- debugImplementation " com.facebook.stetho:stetho:${ stethoVersion} "
185- debugImplementation " com.facebook.stetho:stetho-okhttp3:${ stethoVersion} "
187+ ktlint ' com.pinterest:ktlint:0.40.0'
186188
187- debugImplementation " com.squareup.leakcanary:leakcanary-android:${ leakCanaryVersion} "
188- implementation " com.squareup.leakcanary:leakcanary-object-watcher-android:${ leakCanaryVersion} "
189- implementation " com.squareup.leakcanary:plumber-android:${ leakCanaryVersion} "
189+ /* * Kotlin **/
190+ implementation " org.jetbrains.kotlin:kotlin-stdlib-jdk8:${ kotlin_version} "
190191
191- implementation " androidx.multidex:multidex:2.0.1"
192+ /* * AndroidX **/
193+ implementation ' androidx.appcompat:appcompat:1.2.0'
194+ implementation ' androidx.cardview:cardview:1.0.0'
195+ implementation ' androidx.constraintlayout:constraintlayout:2.0.4'
196+ implementation ' androidx.core:core-ktx:1.3.2'
197+ implementation ' androidx.documentfile:documentfile:1.0.1'
198+ implementation " androidx.lifecycle:lifecycle-livedata:${ androidxLifecycleVersion} "
199+ implementation " androidx.lifecycle:lifecycle-viewmodel:${ androidxLifecycleVersion} "
200+ implementation ' androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
201+ implementation ' androidx.media:media:1.2.1'
202+ implementation ' androidx.multidex:multidex:2.0.1'
203+ implementation ' androidx.preference:preference:1.1.1'
204+ implementation ' androidx.recyclerview:recyclerview:1.1.0'
205+ implementation " androidx.room:room-runtime:${ androidxRoomVersion} "
206+ implementation " androidx.room:room-rxjava3:${ androidxRoomVersion} "
207+ kapt " androidx.room:room-compiler:${ androidxRoomVersion} "
208+ implementation ' androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
209+ implementation ' androidx.webkit:webkit:1.4.0'
210+ implementation ' com.google.android.material:material:1.2.1'
192211
193- // NewPipe dependencies
194- // You can use a local version by uncommenting a few lines in settings.gradle
195- implementation ' com.github.TeamNewPipe:NewPipeExtractor:v0.21.0 '
196- implementation " com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751 "
212+ /* * Third-party libraries * */
213+ // Instance state boilerplate elimination
214+ implementation " frankiesardo:icepick: ${ icepickVersion } "
215+ kapt " frankiesardo:icepick-processor: ${ icepickVersion } "
197216
217+ // HTML parser
198218 implementation " org.jsoup:jsoup:1.13.1"
199219
220+ // HTTP client
200221 // noinspection GradleDependency --> do not update okhttp to keep supporting Android 4.4 users
201222 implementation " com.squareup.okhttp3:okhttp:3.12.13"
202223
224+ // Media player
203225 implementation " com.google.android.exoplayer:exoplayer:${ exoPlayerVersion} "
204226 implementation " com.google.android.exoplayer:extension-mediasession:${ exoPlayerVersion} "
205227
206- implementation " com.google.android.material:material:1.2.1"
207-
228+ // Metadata generator for service descriptors
208229 compileOnly " com.google.auto.service:auto-service-annotations:${ googleAutoServiceVersion} "
209230 kapt " com.google.auto.service:auto-service:${ googleAutoServiceVersion} "
210231
211- implementation " androidx.appcompat:appcompat:1.2.0"
212- implementation " androidx.preference:preference:1.1.1"
213- implementation " androidx.recyclerview:recyclerview:1.1.0"
214- implementation " androidx.cardview:cardview:1.0.0"
215- implementation " androidx.constraintlayout:constraintlayout:2.0.4"
216- implementation ' androidx.core:core-ktx:1.3.2'
217- implementation ' androidx.documentfile:documentfile:1.0.1'
218- implementation ' androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
219- implementation ' androidx.media:media:1.2.1'
220- implementation ' androidx.webkit:webkit:1.4.0'
221-
222- implementation " androidx.lifecycle:lifecycle-livedata:${ androidxLifecycleVersion} "
223- implementation " androidx.lifecycle:lifecycle-viewmodel:${ androidxLifecycleVersion} "
224-
225- implementation " androidx.room:room-runtime:${ androidxRoomVersion} "
226- implementation " androidx.room:room-rxjava3:${ androidxRoomVersion} "
227- kapt " androidx.room:room-compiler:${ androidxRoomVersion} "
228-
229- implementation " androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
230-
232+ // Manager for complex RecyclerView layouts
231233 implementation " com.xwray:groupie:${ groupieVersion} "
232234 implementation " com.xwray:groupie-viewbinding:${ groupieVersion} "
233235
236+ // Circular ImageView
234237 implementation " de.hdodenhof:circleimageview:3.1.0"
238+ // Image loading
235239 implementation " com.nostra13.universalimageloader:universal-image-loader:1.9.5"
236240
241+ // Markdown library for Android
237242 implementation " io.noties.markwon:core:${ markwonVersion} "
238243 implementation " io.noties.markwon:linkify:${ markwonVersion} "
239244
245+ // File picker
240246 implementation " com.nononsenseapps:filepicker:4.2.1"
241247
248+ // Crash reporting
242249 implementation " ch.acra:acra-core:5.7.0"
243250
251+ // Reactive extensions for Java VM
244252 implementation " io.reactivex.rxjava3:rxjava:3.0.7"
245253 implementation " io.reactivex.rxjava3:rxandroid:3.0.0"
254+ // RxJava binding APIs for Android UI widgets
246255 implementation " com.jakewharton.rxbinding4:rxbinding:4.0.0"
247256
257+ // Date and time formatting
248258 implementation " org.ocpsoft.prettytime:prettytime:5.0.0.Final"
249259
260+ /* * Debugging **/
261+ // Memory leak detection
262+ implementation " com.squareup.leakcanary:leakcanary-object-watcher-android:${ leakCanaryVersion} "
263+ implementation " com.squareup.leakcanary:plumber-android:${ leakCanaryVersion} "
264+ debugImplementation " com.squareup.leakcanary:leakcanary-android:${ leakCanaryVersion} "
265+ // Debug bridge for Android
266+ debugImplementation " com.facebook.stetho:stetho:${ stethoVersion} "
267+ debugImplementation " com.facebook.stetho:stetho-okhttp3:${ stethoVersion} "
268+
269+ /* * Testing **/
250270 testImplementation ' junit:junit:4.13.1'
251271 testImplementation " org.mockito:mockito-core:${ mockitoVersion} "
252272 testImplementation " org.mockito:mockito-inline:${ mockitoVersion} "
0 commit comments