build.gradle.kts 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. import org.mjdev.gradle.extensions.implementation
  2. import org.mjdev.gradle.plugin.MainAppPlugin.Companion.javaVersion
  3. import org.mjdev.gradle.plugin.MainAppPlugin.Companion.kotlinCompilerExtVersion
  4. import org.mjdev.gradle.plugin.MainAppPlugin.Companion.projectCompileSdk
  5. import org.mjdev.gradle.plugin.MainAppPlugin.Companion.projectMinSdk
  6. /*
  7. * Copyright (c) Milan Jurkulák 2023.
  8. * Contact:
  9. * e: mimoccc@gmail.com
  10. * e: mj@mjdev.org
  11. * w: https://mjdev.org
  12. */
  13. plugins {
  14. id("com.android.library")
  15. kotlin("android")
  16. id("com.google.dagger.hilt.android")
  17. id("dagger.hilt.android.plugin")
  18. kotlin("kapt")
  19. id("com.google.devtools.ksp")
  20. // id("org.jetbrains.dokka") version "1.8.10"
  21. }
  22. android {
  23. namespace = "org.mjdev.tvlib"
  24. compileSdk = projectCompileSdk
  25. defaultConfig {
  26. minSdk = projectMinSdk
  27. testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  28. consumerProguardFiles("consumer-rules.pro")
  29. }
  30. buildTypes {
  31. debug {
  32. isMinifyEnabled = false
  33. proguardFiles(
  34. getDefaultProguardFile("proguard-android-optimize.txt"),
  35. "proguard-rules.pro"
  36. )
  37. buildConfigField("Boolean", "RECOMPOSE_ENABLED", "false")
  38. }
  39. release {
  40. isMinifyEnabled = false // todo
  41. proguardFiles(
  42. getDefaultProguardFile("proguard-android-optimize.txt"),
  43. "proguard-rules.pro"
  44. )
  45. buildConfigField("Boolean", "RECOMPOSE_ENABLED", "false")
  46. }
  47. }
  48. compileOptions {
  49. sourceCompatibility = javaVersion
  50. targetCompatibility = javaVersion
  51. }
  52. kotlinOptions {
  53. jvmTarget = javaVersion.toString()
  54. }
  55. buildFeatures {
  56. compose = true
  57. buildConfig = true
  58. }
  59. composeOptions {
  60. kotlinCompilerExtensionVersion = kotlinCompilerExtVersion
  61. }
  62. packaging {
  63. resources.excludes.apply {
  64. add("/META-INF/{AL2.0,LGPL2.1}")
  65. }
  66. }
  67. lint {
  68. checkReleaseBuilds = false
  69. }
  70. hilt {
  71. enableAggregatingTask = true
  72. }
  73. // tasks.dokkaGfm {
  74. // outputDirectory.set(File(projectDir, "../wiki/documentation"))
  75. // }
  76. }
  77. dependencies {
  78. // startups
  79. // implementation("androidx.startup:startup-runtime:1.1.1")
  80. // base libs
  81. implementation("androidx.core:core-ktx:1.12.0")
  82. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
  83. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
  84. // reflect / todo : remove
  85. implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.21")
  86. // window manager
  87. implementation("androidx.window:window:1.2.0")
  88. // compose base libs
  89. implementation(platform("androidx.compose:compose-bom:2023.10.01"))
  90. implementation("androidx.compose.ui:ui-tooling")
  91. implementation("androidx.activity:activity-compose:1.8.1")
  92. // more icons
  93. implementation("androidx.compose.material:material-icons-extended:1.5.4")
  94. // tv compose
  95. implementation("androidx.tv:tv-foundation:1.0.0-alpha10")
  96. implementation("androidx.tv:tv-material:1.0.0-alpha10")
  97. // view model
  98. implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2")
  99. // navigation
  100. implementation("androidx.navigation:navigation-compose:2.7.5")
  101. // okhttp
  102. implementation(platform("com.squareup.okhttp3:okhttp-bom:5.0.0-alpha.11"))
  103. implementation("com.squareup.okhttp3:okhttp")
  104. implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11")
  105. // retrofit
  106. implementation("com.squareup.retrofit2:retrofit:2.9.0")
  107. implementation("com.squareup.retrofit2:converter-moshi:2.9.0")
  108. implementation("com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2")
  109. // moshi json
  110. implementation("com.squareup.moshi:moshi:1.15.0")
  111. implementation("com.squareup.retrofit2:converter-moshi:2.9.0")
  112. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
  113. ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.0")
  114. // sandwich
  115. implementation("com.github.skydoves:sandwich:2.0.4")
  116. implementation("com.github.skydoves:sandwich-retrofit:2.0.4")
  117. // image loading
  118. implementation("com.github.bumptech.glide:okhttp3-integration:4.16.0")
  119. implementation("com.github.bumptech.glide:compose:1.0.0-beta01")
  120. implementation("com.github.skydoves:landscapist-glide:2.2.12")
  121. implementation("com.github.skydoves:landscapist-transformation:2.2.12")
  122. implementation("com.github.skydoves:landscapist-palette:2.2.12")
  123. implementation("com.github.skydoves:landscapist-placeholder:2.2.12")
  124. ksp("com.github.bumptech.glide:ksp:4.15.1")
  125. // zxing
  126. implementation("com.google.zxing:core:3.5.2")
  127. // svg
  128. implementation("com.caverock:androidsvg-aar:1.4")
  129. // oauth
  130. implementation("com.auth0.android:auth0:2.10.2")
  131. implementation("com.auth0.android:jwtdecode:2.0.2")
  132. // debug
  133. implementation("com.jakewharton.timber:timber:5.0.1")
  134. // dagger core
  135. implementation("com.google.dagger:dagger:2.49")
  136. implementation("androidx.compose.material3:material3:1.1.2")
  137. kapt("com.google.dagger:dagger-compiler:2.49")
  138. // dagger android
  139. implementation("com.google.dagger:dagger-android:2.49")
  140. implementation("com.google.dagger:dagger-android-support:2.49")
  141. kapt("com.google.dagger:dagger-android-processor:2.49")
  142. // dagger - hilt
  143. implementation("com.google.dagger:hilt-android:2.49")
  144. implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
  145. kapt("com.google.dagger:hilt-compiler:2.49")
  146. // encrypt data
  147. implementation("com.scottyab:aescrypt:0.0.1")
  148. // exoplayer
  149. implementation("androidx.media3:media3-exoplayer:1.2.0")
  150. implementation("androidx.media3:media3-exoplayer-dash:1.2.0")
  151. implementation("androidx.media3:media3-exoplayer-hls:1.2.0")
  152. implementation("androidx.media3:media3-exoplayer-rtsp:1.2.0")
  153. // implementation("androidx.media3:media3-exoplayer-ima:1.1.0")
  154. implementation("androidx.media3:media3-datasource-cronet:1.2.0")
  155. implementation("androidx.media3:media3-datasource-okhttp:1.2.0")
  156. implementation("androidx.media3:media3-datasource-rtmp:1.2.0")
  157. implementation("androidx.media3:media3-ui:1.2.0")
  158. // implementation("androidx.media3:media3-ui-leanback:1.1.0")
  159. implementation("androidx.media3:media3-session:1.2.0")
  160. implementation("androidx.media3:media3-extractor:1.2.0")
  161. implementation("androidx.media3:media3-cast:1.2.0")
  162. implementation("androidx.media3:media3-exoplayer-workmanager:1.2.0")
  163. implementation("androidx.media3:media3-transformer:1.2.0")
  164. implementation("androidx.media3:media3-database:1.2.0")
  165. implementation("androidx.media3:media3-decoder:1.2.0")
  166. implementation("androidx.media3:media3-datasource:1.2.0")
  167. implementation("androidx.media3:media3-common:1.2.0")
  168. // permission
  169. implementation("com.google.accompanist:accompanist-permissions:0.33.2-alpha")
  170. // for previews
  171. debugImplementation("androidx.customview:customview-poolingcontainer:1.0.0")
  172. // pallette
  173. implementation("androidx.palette:palette-ktx:1.0.0")
  174. // lottie
  175. implementation("com.airbnb.android:lottie-compose:6.2.0")
  176. // exif info
  177. implementation("androidx.exifinterface:exifinterface:1.3.6")
  178. // anr
  179. implementation("com.github.anrwatchdog:anrwatchdog:1.4.0")
  180. // jsoup
  181. implementation("org.jsoup:jsoup:1.17.1")
  182. // dm
  183. implementation("com.dailymotion.dailymotion-sdk-android:sdk:0.2.12")
  184. // dynamic theme
  185. implementation("com.google.android.material:material:1.10.0")
  186. // stripe payments
  187. // implementation("com.stripe:stripe-android:20.33.0")
  188. // implementation("com.stripe:stripecardscan:20.33.0")
  189. // implementation("com.stripe:financial-connections:20.33.0")
  190. // scrape
  191. implementation("it.skrape:skrapeit:1.2.2")
  192. implementation("it.skrape:skrapeit-browser-fetcher:1.2.2")
  193. // implementation("org.jsoup:jsoup:1.16.1")
  194. // implementation("net.sourceforge.htmlunit:htmlunit-android:2.67.0")
  195. // yt
  196. // ...
  197. // constraints
  198. constraints {
  199. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0").apply {
  200. because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
  201. }
  202. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0").apply {
  203. because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
  204. }
  205. }
  206. // testing
  207. testImplementation("junit:junit:4.13.2")
  208. androidTestImplementation("androidx.test.ext:junit:1.1.5")
  209. androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
  210. }