Migration from Groovy to Kotlin DSL

This commit is contained in:
Ashwini Kumar
2020-07-27 17:17:08 +05:30
parent faff57001b
commit b28f53da8c
12 changed files with 405 additions and 376 deletions

View File

@ -1,72 +0,0 @@
apply plugin: 'com.android.application'
apply from: "$project.rootDir/tools/checkstyle.gradle"
apply from: "$project.rootDir/tools/pmd.gradle"
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'dagger.hilt.android.plugin'
android {
compileSdkVersion versions.compile_sdk
dataBinding {
enabled true
}
defaultConfig {
applicationId "com.android.tvmaze"
minSdkVersion versions.min_sdk
targetSdkVersion versions.target_sdk
versionCode versions.app_version_code
versionName versions.app_version_name
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testOptions.unitTests.includeAndroidResources = true
}
flavorDimensions "default"
productFlavors {
prod {
dimension "default"
applicationId = "com.android.tvmaze"
}
dev {
dimension "default"
applicationId = "com.android.tvmaze.dev"
}
}
buildTypes {
debug {
applicationIdSuffix = ".debug"
}
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude '.readme'
}
// To enable experimental functionality like @Parcelize
androidExtensions {
experimental = true
}
kotlinOptions {
jvmTarget = "1.8"
}
}
apply from: 'dependencies.gradle'

168
app/build.gradle.kts Normal file
View File

@ -0,0 +1,168 @@
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
kotlin("android.extensions")
id("dagger.hilt.android.plugin")
}
apply {
from(rootProject.file("tools/checkstyle.gradle"))
from(rootProject.file("tools/pmd.gradle"))
}
android {
compileSdkVersion(Deps.Versions.compile_sdk)
buildFeatures {
viewBinding = true
dataBinding = true
buildConfig = true
}
defaultConfig {
applicationId = "com.android.tvflix"
minSdkVersion(Deps.Versions.min_sdk)
targetSdkVersion(Deps.Versions.target_sdk)
versionCode = Deps.Versions.app_version_code
versionName = Deps.Versions.app_version_name
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
// Refer https://developer.android.com/jetpack/androidx/releases/room#compiler-options
arguments(
mapOf(
"room.schemaLocation" to "$projectDir/schemas",
"room.incremental" to "true",
"room.expandProjection" to "true"
)
)
}
}
}
flavorDimensions("default")
productFlavors {
create("prod") {
applicationId = "com.android.tvflix"
}
create("dev") {
applicationId = "com.android.tvflix.dev"
}
}
buildTypes {
getByName("debug") {
applicationIdSuffix = ".debug"
}
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
isDebuggable = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
testOptions {
unitTests.isIncludeAndroidResources = true
animationsDisabled = true
}
kapt {
useBuildCache = true
javacOptions {
// Increase the max count of errors from annotation processors.
// Default is 100.
option("-Xmaxerrs", 500)
}
}
testBuildType = "debug"
packagingOptions {
exclude("META-INF/ASL2.0")
exclude("META-INF/DEPENDENCIES")
exclude("META-INF/NOTICE")
exclude("META-INF/LICENSE")
exclude("META-INF/LICENSE.txt")
exclude("META-INF/NOTICE.txt")
exclude(".readme")
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
implementation(Deps.Google.material)
// start-region AndroidX
implementation(Deps.AndroidX.ktx_core)
implementation(Deps.AndroidX.ktx_fragment)
implementation(Deps.AndroidX.ktx_activity)
implementation(Deps.AndroidX.constraint_layout)
implementation(Deps.AndroidX.Lifecycle.extensions)
kapt(Deps.AndroidX.Lifecycle.compiler)
implementation(Deps.AndroidX.Lifecycle.viewmodel)
implementation(Deps.AndroidX.Lifecycle.livedata)
implementation(Deps.AndroidX.Paging.runtime)
testImplementation(Deps.AndroidX.Paging.common)
implementation(Deps.AndroidX.Room.runtime)
kapt(Deps.AndroidX.Room.compiler)
testImplementation(Deps.AndroidX.Room.testing)
implementation(Deps.AndroidX.Room.ktx)
implementation(Deps.AndroidX.Hilt.viewmodel)
kapt(Deps.AndroidX.Hilt.compiler)
implementation(Deps.AndroidX.multidex)
implementation(Deps.AndroidX.annotation)
// end-region AndroidX
implementation(Deps.OkHttp.main)
implementation(Deps.OkHttp.logging_interceptor)
implementation(Deps.Glide.runtime)
implementation(Deps.Glide.okhttp_integration)
kapt(Deps.Glide.compiler)
implementation(Deps.Retrofit.main)
implementation(Deps.Retrofit.moshi)
implementation(Deps.timber)
// start-region Test
testImplementation(Deps.junit)
testImplementation(Deps.Mockito.core)
androidTestImplementation(Deps.Mockito.android)
testImplementation(Deps.Mockito.kotlin)
testImplementation(Deps.Mockito.inline)
testImplementation(Deps.robolectric)
testImplementation(Deps.AndroidX.Test.arch_core_testing)
testImplementation(Deps.AndroidX.Test.core)
androidTestImplementation(Deps.AndroidX.Test.runner)
androidTestImplementation(Deps.AndroidX.Test.junit)
// Espresso
androidTestImplementation(Deps.AndroidX.Test.Espresso.core)
androidTestImplementation(Deps.AndroidX.Test.Espresso.contrib)
androidTestImplementation(Deps.AndroidX.Test.Espresso.idling_resource)
androidTestImplementation(Deps.AndroidX.Test.rules)
testImplementation(Deps.truth)
testImplementation(Deps.Coroutines.test)
// end-region Test
implementation(Deps.Moshi.kotlin)
kapt(Deps.Moshi.codegen)
implementation(Deps.Coroutines.core)
implementation(Deps.Coroutines.android)
debugImplementation(Deps.Chucker.debug)
releaseImplementation(Deps.Chucker.release)
implementation(Deps.Hilt.android)
kapt(Deps.Hilt.android_compiler)
}

View File

@ -1,85 +0,0 @@
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//Support
implementation deps.androidx_lib.design
implementation deps.androidx_lib.appcompat
implementation deps.androidx_lib.support_annotations
implementation deps.androidx_lib.recyclerview
implementation deps.androidx_lib.cardview
implementation deps.androidx_lib.ktx_core
implementation deps.androidx_lib.ktx_collections
implementation deps.androidx_lib.ktx_fragment
implementation deps.androidx_lib.ktx_activity
implementation deps.constraint_layout
implementation deps.multidex
implementation deps.okhttp.main
implementation deps.okhttp.logging_interceptor
// Glide
implementation deps.glide.runtime
implementation deps.glide.okhttp_integration
kapt deps.glide.compiler
// Retrofit
implementation deps.retrofit.main
implementation deps.retrofit.moshi
implementation deps.okhttp.logging_interceptor
// Viewmodel
implementation deps.lifecycle.extensions
kapt deps.lifecycle.compiler
implementation deps.lifecycle.viewmodel_ktx
implementation deps.lifecycle.livedata_ktx
// Paging
implementation deps.paging.runtime
testImplementation deps.paging.common
// Room
implementation deps.room.runtime
kapt deps.room.compiler
testImplementation deps.room.testing
implementation deps.room.ktx
// Logger
implementation deps.timber
// Test
testImplementation deps.junit
androidTestImplementation deps.findbugs_jsr
testImplementation deps.mockito.core
androidTestImplementation deps.mockito.android
testImplementation deps.mockito.kotlin
testImplementation deps.mockito.inline
testImplementation deps.robolectric
testImplementation deps.arch_core_testing
// Espresso
androidTestImplementation deps.espresso.core
androidTestImplementation deps.espresso.contrib
androidTestImplementation deps.espresso.idling_resource
androidTestImplementation deps.android_test.rules
androidTestImplementation deps.android_test.runner
androidTestImplementation deps.android_test.junit
// Assertion library: https://truth.dev/
testImplementation deps.truth
implementation deps.moshi.kotlin
kapt deps.moshi.codegen
kapt deps.databinding
implementation deps.coroutines.core
implementation deps.coroutines.rx2
implementation deps.coroutines.android
testImplementation deps.coroutines.test
debugImplementation deps.chucker.debug
releaseImplementation deps.chucker.release
implementation deps.hilt.android
kapt deps.hilt.android_compiler
implementation deps.hilt.viewmodel
kapt deps.hilt.compiler
}

View File

@ -20,21 +20,6 @@
}
-dontwarn org.apache.**
# Design support library
-keep class android.support.design.widget.** { *; }
-keep interface android.support.design.widget.** { *; }
-dontwarn android.support.design.**
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.app.** { *; }
# FOR APPCOMPAT 23.1.1 and higher to avoid crashes on specific devices
# Need to check if it will be necessary starting with 24.0.0
# https://code.google.com/p/android/issues/detail?id=78377#c336
-keep class !android.support.v7.view.menu.*MenuBuilder*, android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
# Needed by commons logging
-keep class org.apache.commons.logging.* { *; }
@ -112,4 +97,22 @@
public static *** v(...);
public static *** d(...);
public static *** i(...);
}
}
# OkHttp platform used only on JVM and when Conscrypt dependency is available.
-dontwarn okhttp3.internal.platform.ConscryptPlatform
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep class * extends com.bumptech.glide.module.AppGlideModule {
<init>(...);
}
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
*** rewind();
}

View File

@ -1,31 +0,0 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
apply from: 'deps-declaration.gradle'
repositories {
mavenCentral()
maven { url "https://maven.fabric.io/public" }
google()
jcenter()
}
dependencies {
classpath deps.android_plugin
classpath deps.kotlin.gradle_plugin
classpath deps.hilt.gradle_plugin
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
maven { url "http://repository.jetbrains.com/all" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

45
build.gradle.kts Normal file
View File

@ -0,0 +1,45 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
gradlePluginPortal()
mavenCentral()
google()
jcenter()
}
dependencies {
classpath(Deps.android_plugin)
classpath(Deps.Kotlin.gradle_plugin)
classpath(Deps.Hilt.gradlePlugin)
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle.kts files
}
}
allprojects {
repositories {
mavenCentral()
google()
jcenter()
}
configurations.all {
resolutionStrategy.eachDependency {
when {
requested.name.startsWith("kotlin-stdlib") -> {
useTarget(
"${requested.group}:${requested.name.replace(
"jre",
"jdk"
)}:${requested.version}"
)
}
else -> when (requested.group) {
"org.jetbrains.kotlin" -> useVersion(Deps.Versions.kotlin)
}
}
}
}
}
tasks.register("clean").configure {
delete("build")
}

12
buildSrc/build.gradle.kts Normal file
View File

@ -0,0 +1,12 @@
repositories {
jcenter()
}
plugins {
`kotlin-dsl`
`java-gradle-plugin`
}
kotlinDslPluginOptions {
experimentalWarning.set(false)
}

View File

@ -0,0 +1,158 @@
object Deps {
object Versions {
const val compile_sdk = 28
const val min_sdk = 21
const val target_sdk = 26
const val app_version_code = 104
const val app_version_name = "2.1.0"
const val android_plugin = "4.0.1"
const val constraint_layout = "2.0.0-beta4"
const val lifecycle = "2.2.0"
const val android_test = "1.2.0"
const val espresso = "3.2.0"
const val glide = "4.11.0"
const val junit = "4.12"
const val mockito = "3.2.4"
const val okhttp = "4.8.0"
const val retrofit = "2.9.0"
const val paging = "2.1.0"
const val room = "2.2.5"
const val kotlin = "1.3.72"
const val timber = "4.7.1"
const val mockito_kotlin = "2.2.0"
const val arch_core_testing = "2.0.0"
const val robolectric = "4.3.1"
const val moshi = "1.9.2"
const val coroutines = "1.3.7"
const val truth = "1.0.1"
const val annotation = "1.1.0"
const val chucker = "3.2.0"
const val ktx_core = "1.2.0"
const val ktx_fragment = "1.2.4"
const val ktx_activity = "1.1.0"
const val hilt_dagger = "2.28-alpha"
const val hilt = "1.0.0-alpha01"
const val material = "1.1.0"
const val android_test_junit = "1.1.1"
const val multidex = "2.0.1"
}
const val android_plugin = "com.android.tools.build:gradle:${Versions.android_plugin}"
const val timber = "com.jakewharton.timber:timber:${Versions.timber}"
const val junit = "junit:junit:${Versions.junit}"
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
object Google {
const val material = "com.google.android.material:material:${Versions.material}"
}
object Kotlin {
const val gradle_plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
}
object Coroutines {
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}"
const val android =
"org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}"
const val test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.coroutines}"
}
object AndroidX {
object Test {
const val core = "androidx.test:core:${Versions.android_test}"
const val rules = "androidx.test:rules:${Versions.android_test}"
const val runner = "androidx.test:runner:${Versions.android_test}"
const val junit = "androidx.test.ext:junit:${Versions.android_test_junit}"
object Espresso {
const val core = "androidx.test.espresso:espresso-core:${Versions.espresso}"
const val contrib = "androidx.test.espresso:espresso-contrib:${Versions.espresso}"
const val idling_resource =
"androidx.test.espresso:espresso-idling-resource:${Versions.espresso}"
}
const val arch_core_testing =
"androidx.arch.core:core-testing:${Versions.arch_core_testing}"
}
object Paging {
const val common = "androidx.paging:paging-common-ktx:${Versions.paging}"
const val runtime = "androidx.paging:paging-runtime-ktx:${Versions.paging}"
}
const val constraint_layout =
"androidx.constraintlayout:constraintlayout:${Versions.constraint_layout}"
const val ktx_core = "androidx.core:core-ktx:${Versions.ktx_core}"
const val ktx_fragment = "androidx.fragment:fragment-ktx:${Versions.ktx_fragment}"
const val ktx_activity = "androidx.activity:activity-ktx:${Versions.ktx_activity}"
const val multidex = "androidx.multidex:multidex:${Versions.multidex}"
const val annotation = "androidx.annotation:annotation:${Versions.annotation}"
object Lifecycle {
const val extensions = "androidx.lifecycle:lifecycle-extensions:${Versions.lifecycle}"
const val livedata = "androidx.lifecycle:lifecycle-livedata-ktx:${Versions.lifecycle}"
const val viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}"
const val compiler = "androidx.lifecycle:lifecycle-common-java8:${Versions.lifecycle}"
}
object Room {
const val runtime = "androidx.room:room-runtime:${Versions.room}"
const val compiler = "androidx.room:room-compiler:${Versions.room}"
const val ktx = "androidx.room:room-ktx:${Versions.room}"
const val testing = "androidx.room:room-testing:${Versions.room}"
}
object Hilt {
const val viewmodel = "androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hilt}"
const val compiler = "androidx.hilt:hilt-compiler:${Versions.hilt}"
}
}
object Hilt {
const val android = "com.google.dagger:hilt-android:${Versions.hilt_dagger}"
const val android_compiler =
"com.google.dagger:hilt-android-compiler:${Versions.hilt_dagger}"
const val gradlePlugin =
"com.google.dagger:hilt-android-gradle-plugin:${Versions.hilt_dagger}"
}
object Retrofit {
const val main = "com.squareup.retrofit2:retrofit:${Versions.retrofit}"
const val moshi = "com.squareup.retrofit2:converter-moshi:${Versions.retrofit}"
}
object OkHttp {
const val main = "com.squareup.okhttp3:okhttp:${Versions.okhttp}"
const val logging_interceptor =
"com.squareup.okhttp3:logging-interceptor:${Versions.okhttp}"
}
object Glide {
const val runtime = "com.github.bumptech.glide:glide:${Versions.glide}"
const val compiler = "com.github.bumptech.glide:compiler:${Versions.glide}"
const val okhttp_integration =
"com.github.bumptech.glide:okhttp3-integration:${Versions.glide}"
}
object Moshi {
const val kotlin = "com.squareup.moshi:moshi-kotlin:${Versions.moshi}"
const val codegen = "com.squareup.moshi:moshi-kotlin-codegen:${Versions.moshi}"
}
object Mockito {
const val core = "org.mockito:mockito-core:${Versions.mockito}"
const val android = "org.mockito:mockito-android:${Versions.mockito}"
const val inline = "org.mockito:mockito-inline:${Versions.mockito}"
const val kotlin = "com.nhaarman.mockitokotlin2:mockito-kotlin:${Versions.mockito_kotlin}"
}
object Chucker {
const val debug = "com.github.chuckerteam.chucker:library:${Versions.chucker}"
const val release = "com.github.chuckerteam.chucker:library-no-op:${Versions.chucker}"
}
const val truth = "com.google.truth:truth:${Versions.truth}"
}

View File

@ -1,171 +0,0 @@
ext.deps = [:]
ext.versions = [:]
def versions = [:]
//sdk versions
versions.compile_sdk = 28
versions.min_sdk = 21
versions.target_sdk = 26
versions.app_version_code = 104
versions.app_version_name = '2.1.0'
// android and google essentials
versions.android_plugin = '4.0.1'
versions.constraint_layout = '2.0.0-beta4'
versions.google_services = '4.3.3'
versions.lifecycle = '2.2.0'
versions.support_x = '1.0.0'
versions.android_test = '1.2.0'
versions.android_test_junit = '1.1.1'
versions.multidex = '2.0.1'
versions.espresso = '3.2.0'
versions.glide = '4.9.0'
versions.junit = '4.12'
versions.mockito = '3.2.4'
versions.okhttp = '4.8.0'
versions.retrofit = '2.9.0'
versions.paging = '2.1.0'
versions.room = '2.2.5'
versions.kotlin = '1.3.72'
versions.timber = '4.7.1'
versions.mockito_kotlin = '2.2.0'
versions.arch_core_testing = '2.0.0'
versions.robolectric = '4.3.1'
versions.moshi = '1.9.2'
versions.coroutines = '1.3.7'
versions.coroutines_test = '1.3.7'
versions.truth = '1.0.1'
versions.annotation = '1.1.0'
versions.appcompat = '1.1.0'
versions.chucker = '3.2.0'
versions.ktx_core = '1.2.0'
versions.ktx_collections = '1.1.0'
versions.ktx_fragment = '1.2.4'
versions.ktx_activity = '1.1.0'
versions.hilt_dagger = '2.28-alpha'
versions.hilt = '1.0.0-alpha01'
ext.versions = versions
def deps = [:]
// ----- START OF GOOGLE AND ANDROID ESSENTIALS
deps.android_plugin = "com.android.tools.build:gradle:$versions.android_plugin"
deps.databinding = "com.android.databinding:compiler:$versions.android_plugin"
deps.constraint_layout = "androidx.constraintlayout:constraintlayout:$versions.constraint_layout"
deps.multidex = "androidx.multidex:multidex:$versions.multidex"
deps.google_services = "com.google.gms:google-services:$versions.google_services"
def androidx_lib = [:]
androidx_lib.design = "com.google.android.material:material:$versions.support_x"
androidx_lib.appcompat = "androidx.appcompat:appcompat:$versions.appcompat"
androidx_lib.recyclerview = "androidx.recyclerview:recyclerview:$versions.support_x"
androidx_lib.cardview = "androidx.cardview:cardview:$versions.support_x"
androidx_lib.support_annotations = "androidx.annotation:annotation:$versions.annotation"
androidx_lib.ktx_core = "androidx.core:core-ktx:$versions.ktx_core"
androidx_lib.ktx_collections = "androidx.collection:collection-ktx:$versions.ktx_collections"
androidx_lib.ktx_fragment = "androidx.fragment:fragment-ktx:$versions.ktx_fragment"
androidx_lib.ktx_activity = "androidx.activity:activity-ktx:$versions.ktx_activity"
deps.androidx_lib = androidx_lib
def lifecycle = [:]
lifecycle.extensions = "androidx.lifecycle:lifecycle-extensions:$versions.lifecycle"
lifecycle.compiler = "androidx.lifecycle:lifecycle-common-java8:$versions.lifecycle"
lifecycle.viewmodel_ktx = "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.lifecycle"
lifecycle.livedata_ktx = "androidx.lifecycle:lifecycle-livedata-ktx:$versions.lifecycle"
deps.lifecycle = lifecycle
def espresso = [:]
espresso.core = "androidx.test.espresso:espresso-core:$versions.espresso"
espresso.contrib = "androidx.test.espresso:espresso-contrib:$versions.espresso"
espresso.idling_resource = "androidx.test.espresso:espresso-idling-resource:$versions.espresso"
deps.espresso = espresso
// ----- END OF ANDROID AND GOOGLE ESSENTIALS
def glide = [:]
glide.runtime = "com.github.bumptech.glide:glide:$versions.glide"
glide.compiler = "com.github.bumptech.glide:compiler:$versions.glide"
glide.okhttp_integration = "com.github.bumptech.glide:okhttp3-integration:$versions.glide"
deps.glide = glide
deps.junit = "junit:junit:$versions.junit"
def okhttp = [:]
okhttp.main = "com.squareup.okhttp3:okhttp:$versions.okhttp"
okhttp.logging_interceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp"
okhttp.urlconnection = "com.squareup.okhttp3:okhttp-urlconnection:$versions.okhttp"
deps.okhttp = okhttp
def retrofit = [:]
retrofit.main = "com.squareup.retrofit2:retrofit:$versions.retrofit"
retrofit.moshi = "com.squareup.retrofit2:converter-moshi:$versions.retrofit"
deps.retrofit = retrofit
def android_test = [:]
android_test.rules = "androidx.test:rules:$versions.android_test"
android_test.runner = "androidx.test:runner:$versions.android_test"
android_test.junit = "androidx.test.ext:junit:$versions.android_test_junit"
deps.android_test = android_test
deps.findbugs_jsr = "com.google.code.findbugs:jsr305:$versions.findbugs"
def kotlin = [:]
kotlin.stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"
kotlin.gradle_plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"
deps.kotlin = kotlin
def paging = [:]
paging.runtime = "androidx.paging:paging-runtime:$versions.paging"
paging.common = "androidx.paging:paging-common:$versions.paging"
deps.paging = paging
def room = [:]
room.runtime = "androidx.room:room-runtime:$versions.room"
room.compiler = "androidx.room:room-compiler:$versions.room"
room.testing = "androidx.room:room-testing:$versions.room"
room.ktx = "androidx.room:room-ktx:$versions.room"
deps.room = room
// Json library with built in type adapters
def moshi = [:]
moshi.kotlin = "com.squareup.moshi:moshi-kotlin:$versions.moshi"
moshi.codegen = "com.squareup.moshi:moshi-kotlin-codegen:$versions.moshi"
deps.moshi = moshi
deps.timber = "com.jakewharton.timber:timber:$versions.timber"
deps.arch_core_testing = "androidx.arch.core:core-testing:$versions.arch_core_testing"
deps.robolectric = "org.robolectric:robolectric:$versions.robolectric"
def mockito = [:]
mockito.core = "org.mockito:mockito-core:$versions.mockito"
mockito.android = "org.mockito:mockito-android:$versions.mockito"
mockito.inline = "org.mockito:mockito-inline:$versions.mockito"
mockito.kotlin = "com.nhaarman.mockitokotlin2:mockito-kotlin:$versions.mockito_kotlin"
deps.mockito = mockito
def coroutines = [:]
coroutines.core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$versions.coroutines"
coroutines.rx2 = "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$versions.coroutines"
coroutines.android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$versions.coroutines"
coroutines.test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:$versions.coroutines_test"
deps.coroutines = coroutines
deps.truth = "com.google.truth:truth:$versions.truth"
def chucker = [:]
chucker.debug = "com.github.chuckerteam.chucker:library:$versions.chucker"
chucker.release = "com.github.chuckerteam.chucker:library-no-op:$versions.chucker"
deps.chucker = chucker
def hilt = [:]
hilt.gradle_plugin = "com.google.dagger:hilt-android-gradle-plugin:$versions.hilt_dagger"
hilt.android = "com.google.dagger:hilt-android:$versions.hilt_dagger"
hilt.android_compiler = "com.google.dagger:hilt-android-compiler:$versions.hilt_dagger"
hilt.compiler = "androidx.hilt:hilt-compiler:$versions.hilt"
hilt.viewmodel = "androidx.hilt:hilt-lifecycle-viewmodel:$versions.hilt"
deps.hilt = hilt
ext.deps = deps

View File

@ -17,5 +17,6 @@ android.enableJetifier=true
# All kapt to use workers
kapt.use.worker.api=true
kapt.incremental.apt=true
android.databinding.incremental=true
kapt.include.compile.classpath=false

View File

@ -1 +0,0 @@
include ":app"

2
settings.gradle.kts Normal file
View File

@ -0,0 +1,2 @@
include(":app")
rootProject.name = "TvFlix"