From b28f53da8c3fc664d07116d27dce6359f8d1f726 Mon Sep 17 00:00:00 2001 From: Ashwini Kumar Date: Mon, 27 Jul 2020 17:17:08 +0530 Subject: [PATCH] Migration from Groovy to Kotlin DSL --- app/build.gradle | 72 ---------- app/build.gradle.kts | 168 ++++++++++++++++++++++ app/dependencies.gradle | 85 ----------- app/proguard-rules.pro | 35 ++--- build.gradle | 31 ---- build.gradle.kts | 45 ++++++ buildSrc/build.gradle.kts | 12 ++ buildSrc/src/main/kotlin/Dependencies.kt | 158 +++++++++++++++++++++ deps-declaration.gradle | 171 ----------------------- gradle.properties | 1 + settings.gradle | 1 - settings.gradle.kts | 2 + 12 files changed, 405 insertions(+), 376 deletions(-) delete mode 100644 app/build.gradle create mode 100644 app/build.gradle.kts delete mode 100644 app/dependencies.gradle delete mode 100644 build.gradle create mode 100644 build.gradle.kts create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/Dependencies.kt delete mode 100644 deps-declaration.gradle delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index 48edfd4..0000000 --- a/app/build.gradle +++ /dev/null @@ -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' - - diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..ce02233 --- /dev/null +++ b/app/build.gradle.kts @@ -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) +} + + diff --git a/app/dependencies.gradle b/app/dependencies.gradle deleted file mode 100644 index a7270cd..0000000 --- a/app/dependencies.gradle +++ /dev/null @@ -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 -} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 64218e6..099d514 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -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(...); -} \ No newline at end of file +} + +# 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 { + (...); +} +-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { + **[] $VALUES; + public *; +} +-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { + *** rewind(); +} diff --git a/build.gradle b/build.gradle deleted file mode 100644 index f5de61c..0000000 --- a/build.gradle +++ /dev/null @@ -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 -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..8819e23 --- /dev/null +++ b/build.gradle.kts @@ -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") +} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..64a568f --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,12 @@ +repositories { + jcenter() +} + +plugins { + `kotlin-dsl` + `java-gradle-plugin` +} + +kotlinDslPluginOptions { + experimentalWarning.set(false) +} diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt new file mode 100644 index 0000000..61d68ee --- /dev/null +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -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}" +} diff --git a/deps-declaration.gradle b/deps-declaration.gradle deleted file mode 100644 index b2ed0bc..0000000 --- a/deps-declaration.gradle +++ /dev/null @@ -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 \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index c57c17f..69e32c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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 diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index af1a998..0000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ":app" diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..1e02936 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,2 @@ +include(":app") +rootProject.name = "TvFlix"