build.gradle.kts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. @file:Suppress("UnstableApiUsage")
  2. /*
  3. * Copyright (c) Milan Jurkulák 2023.
  4. * Contact:
  5. * e: mimoccc@gmail.com
  6. * e: mj@mjdev.org
  7. * w: https://mjdev.org
  8. */
  9. plugins {
  10. id("com.android.library")
  11. kotlin("android")
  12. kotlin("kapt")
  13. id("com.google.dagger.hilt.android")
  14. id("dagger.hilt.android.plugin")
  15. // id("org.jetbrains.dokka") version "1.8.10"
  16. }
  17. android {
  18. namespace = "org.mjdev.tvlib"
  19. compileSdk = 34
  20. defaultConfig {
  21. minSdk = 21
  22. targetSdk = 34
  23. testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  24. consumerProguardFiles("consumer-rules.pro")
  25. }
  26. buildTypes {
  27. release {
  28. isMinifyEnabled = false
  29. proguardFiles(
  30. getDefaultProguardFile("proguard-android-optimize.txt"),
  31. "proguard-rules.pro"
  32. )
  33. }
  34. }
  35. compileOptions {
  36. sourceCompatibility = JavaVersion.VERSION_17
  37. targetCompatibility = JavaVersion.VERSION_17
  38. }
  39. kotlinOptions {
  40. jvmTarget = JavaVersion.VERSION_17.toString()
  41. }
  42. buildFeatures {
  43. compose = true
  44. buildConfig = true
  45. }
  46. composeOptions {
  47. kotlinCompilerExtensionVersion = "1.3.2"
  48. }
  49. packaging {
  50. resources.excludes.add("/META-INF/{AL2.0,LGPL2.1}")
  51. }
  52. lint {
  53. checkReleaseBuilds = false
  54. }
  55. // tasks.dokkaGfm {
  56. // outputDirectory.set(File(projectDir, "../wiki/documentation"))
  57. // }
  58. }
  59. dependencies {
  60. // base libs
  61. implementation("androidx.core:core-ktx:1.12.0-alpha05")
  62. // reflect / debug purposes only
  63. implementation(kotlin("reflect", "1.8.21"))
  64. // window manager
  65. implementation("androidx.window:window:1.1.0")
  66. // compose base libs
  67. implementation(platform("androidx.compose:compose-bom:2023.06.01"))
  68. implementation("androidx.compose.ui:ui-tooling")
  69. implementation("androidx.activity:activity-compose:1.7.2")
  70. // more icons
  71. implementation("androidx.compose.material:material-icons-extended:1.4.3")
  72. // tv compose
  73. implementation("androidx.tv:tv-foundation:1.0.0-SNAPSHOT")
  74. implementation("androidx.tv:tv-material:1.0.0-alpha07")
  75. // paging
  76. implementation("androidx.paging:paging-compose:3.2.0-rc01")
  77. // view model
  78. implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")
  79. // navigation
  80. implementation("androidx.navigation:navigation-compose:2.7.0-beta02")
  81. // image loading
  82. implementation("io.coil-kt:coil-base:2.4.0")
  83. implementation("io.coil-kt:coil-gif:2.2.2")
  84. implementation("io.coil-kt:coil-svg:1.2.2")
  85. implementation("io.coil-kt:coil-video:1.2.2")
  86. implementation("io.coil-kt:coil-compose:2.4.0")
  87. implementation("com.github.skydoves:landscapist-coil:2.2.2")
  88. // constraint layout // todo remove
  89. implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1")
  90. // debug
  91. implementation("com.jakewharton.timber:timber:5.0.1")
  92. // dagger core
  93. implementation("com.google.dagger:dagger:2.46.1")
  94. implementation("androidx.compose.material3:material3:1.1.1")
  95. kapt("com.google.dagger:dagger-compiler:2.46.1")
  96. // dagger android
  97. implementation("com.google.dagger:dagger-android:2.46.1")
  98. implementation("com.google.dagger:dagger-android-support:2.46.1")
  99. kapt("com.google.dagger:dagger-android-processor:2.46.1")
  100. // dagger - hilt
  101. implementation("com.google.dagger:hilt-android:2.46.1")
  102. implementation("androidx.hilt:hilt-navigation-compose:1.1.0-alpha01")
  103. kapt("com.google.dagger:hilt-compiler:2.46.1")
  104. // encrypt data
  105. implementation("com.scottyab:aescrypt:0.0.1")
  106. // exoplayer
  107. implementation("androidx.media3:media3-exoplayer:1.1.0")
  108. implementation("androidx.media3:media3-exoplayer-dash:1.1.0")
  109. implementation("androidx.media3:media3-exoplayer-hls:1.1.0")
  110. implementation("androidx.media3:media3-exoplayer-rtsp:1.1.0")
  111. implementation("androidx.media3:media3-exoplayer-ima:1.1.0")
  112. implementation("androidx.media3:media3-datasource-cronet:1.1.0")
  113. implementation("androidx.media3:media3-datasource-okhttp:1.1.0")
  114. implementation("androidx.media3:media3-datasource-rtmp:1.1.0")
  115. implementation("androidx.media3:media3-ui:1.1.0")
  116. implementation("androidx.media3:media3-ui-leanback:1.1.0")
  117. implementation("androidx.media3:media3-session:1.1.0")
  118. implementation("androidx.media3:media3-extractor:1.1.0")
  119. implementation("androidx.media3:media3-cast:1.1.0")
  120. implementation("androidx.media3:media3-exoplayer-workmanager:1.1.0")
  121. implementation("androidx.media3:media3-transformer:1.1.0")
  122. implementation("androidx.media3:media3-database:1.1.0")
  123. implementation("androidx.media3:media3-decoder:1.1.0")
  124. implementation("androidx.media3:media3-datasource:1.1.0")
  125. implementation("androidx.media3:media3-common:1.1.0")
  126. // permission
  127. implementation("com.google.accompanist:accompanist-permissions:0.31.5-beta")
  128. // for previews
  129. debugImplementation("androidx.customview:customview-poolingcontainer:1.0.0")
  130. // constraints
  131. constraints {
  132. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0")?.apply {
  133. because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
  134. }
  135. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0")?.apply {
  136. because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
  137. }
  138. }
  139. // testing
  140. testImplementation("junit:junit:4.13.2")
  141. androidTestImplementation("androidx.test.ext:junit:1.1.5")
  142. androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
  143. }