build.gradle.kts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. @file:Suppress("UnstableApiUsage")
  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. // id("org.jetbrains.dokka") version "1.8.10"
  19. kotlin("kapt")
  20. id("com.google.devtools.ksp")
  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. release {
  32. isMinifyEnabled = false
  33. proguardFiles(
  34. getDefaultProguardFile("proguard-android-optimize.txt"),
  35. "proguard-rules.pro"
  36. )
  37. }
  38. }
  39. compileOptions {
  40. sourceCompatibility = javaVersion
  41. targetCompatibility = javaVersion
  42. }
  43. kotlinOptions {
  44. jvmTarget = javaVersion.toString()
  45. }
  46. buildFeatures {
  47. compose = true
  48. buildConfig = true
  49. }
  50. composeOptions {
  51. kotlinCompilerExtensionVersion = kotlinCompilerExtVersion
  52. }
  53. packaging {
  54. resources.excludes.apply {
  55. add("/META-INF/{AL2.0,LGPL2.1}")
  56. }
  57. }
  58. lint {
  59. checkReleaseBuilds = false
  60. }
  61. hilt {
  62. enableAggregatingTask = true
  63. }
  64. // tasks.dokkaGfm {
  65. // outputDirectory.set(File(projectDir, "../wiki/documentation"))
  66. // }
  67. }
  68. dependencies {
  69. // base libs
  70. implementation("androidx.core:core-ktx:1.12.0-beta01")
  71. // reflect / debug purposes only
  72. implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.0")
  73. // window manager
  74. implementation("androidx.window:window:1.1.0")
  75. // compose base libs
  76. implementation(platform("androidx.compose:compose-bom:2023.06.01"))
  77. implementation("androidx.compose.ui:ui-tooling")
  78. implementation("androidx.activity:activity-compose:1.7.2")
  79. // more icons
  80. implementation("androidx.compose.material:material-icons-extended:1.4.3")
  81. // tv compose
  82. implementation("androidx.tv:tv-foundation:1.0.0-alpha08")
  83. implementation("androidx.tv:tv-material:1.0.0-alpha08")
  84. // view model
  85. implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")
  86. // navigation
  87. implementation("androidx.navigation:navigation-compose:2.7.0-rc01")
  88. // okhttp
  89. implementation("com.squareup.okhttp3:okhttp:4.11.0")
  90. implementation("com.squareup.okhttp3:logging-interceptor:4.11.0")
  91. // image loading
  92. implementation("io.coil-kt:coil-base:2.4.0")
  93. implementation("io.coil-kt:coil-gif:2.4.0")
  94. implementation("io.coil-kt:coil-svg:2.4.0")
  95. implementation("io.coil-kt:coil-video:2.4.0")
  96. implementation("io.coil-kt:coil-compose:2.4.0")
  97. implementation("com.github.skydoves:landscapist-coil:2.2.5")
  98. // constraint layout // todo remove
  99. implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1")
  100. // debug
  101. implementation("com.jakewharton.timber:timber:5.0.1")
  102. // dagger core
  103. implementation("com.google.dagger:dagger:2.47")
  104. implementation("androidx.compose.material3:material3:1.1.1")
  105. kapt("com.google.dagger:dagger-compiler:2.47")
  106. // dagger android
  107. implementation("com.google.dagger:dagger-android:2.47")
  108. implementation("com.google.dagger:dagger-android-support:2.47")
  109. kapt("com.google.dagger:dagger-android-processor:2.47")
  110. // dagger - hilt
  111. implementation("com.google.dagger:hilt-android:2.47")
  112. implementation("androidx.hilt:hilt-navigation-compose:1.1.0-alpha01")
  113. kapt("com.google.dagger:hilt-compiler:2.47")
  114. // encrypt data
  115. implementation("com.scottyab:aescrypt:0.0.1")
  116. // exoplayer
  117. implementation("androidx.media3:media3-exoplayer:1.1.0")
  118. implementation("androidx.media3:media3-exoplayer-dash:1.1.0")
  119. implementation("androidx.media3:media3-exoplayer-hls:1.1.0")
  120. implementation("androidx.media3:media3-exoplayer-rtsp:1.1.0")
  121. implementation("androidx.media3:media3-exoplayer-ima:1.1.0")
  122. implementation("androidx.media3:media3-datasource-cronet:1.1.0")
  123. implementation("androidx.media3:media3-datasource-okhttp:1.1.0")
  124. implementation("androidx.media3:media3-datasource-rtmp:1.1.0")
  125. implementation("androidx.media3:media3-ui:1.1.0")
  126. implementation("androidx.media3:media3-ui-leanback:1.1.0")
  127. implementation("androidx.media3:media3-session:1.1.0")
  128. implementation("androidx.media3:media3-extractor:1.1.0")
  129. implementation("androidx.media3:media3-cast:1.1.0")
  130. implementation("androidx.media3:media3-exoplayer-workmanager:1.1.0")
  131. implementation("androidx.media3:media3-transformer:1.1.0")
  132. implementation("androidx.media3:media3-database:1.1.0")
  133. implementation("androidx.media3:media3-decoder:1.1.0")
  134. implementation("androidx.media3:media3-datasource:1.1.0")
  135. implementation("androidx.media3:media3-common:1.1.0")
  136. // permission
  137. implementation("com.google.accompanist:accompanist-permissions:0.31.6-rc")
  138. // for previews
  139. debugImplementation("androidx.customview:customview-poolingcontainer:1.0.0")
  140. // pallette
  141. implementation("androidx.palette:palette-ktx:1.0.0")
  142. // lottie
  143. implementation("com.airbnb.android:lottie-compose:6.1.0")
  144. // exif info
  145. implementation("androidx.exifinterface:exifinterface:1.3.6")
  146. // anr
  147. implementation("com.github.anrwatchdog:anrwatchdog:1.4.0")
  148. // constraints
  149. constraints {
  150. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0")?.apply {
  151. because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
  152. }
  153. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0")?.apply {
  154. because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
  155. }
  156. }
  157. // testing
  158. testImplementation("junit:junit:4.13.2")
  159. androidTestImplementation("androidx.test.ext:junit:1.1.5")
  160. androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
  161. }