plugins { id 'com.android.library' id 'com.google.protobuf' id 'kotlin-android' id 'kotlin-kapt' id "org.jlleitschuh.gradle.ktlint" version "10.2.0" id 'org.jetbrains.dokka' version '1.4.20' } android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunnerArguments disableAnalytics: 'true' consumerProguardFiles "consumer-rules.pro" } buildTypes { all { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' languageVersion = "1.4" freeCompilerArgs += '-Xopt-in=kotlin.RequiresOptIn' freeCompilerArgs += '-Xexplicit-api=strict' } protobuf { protoc { artifact = "com.google.protobuf:protoc:$protobuf_version" } generateProtoTasks { all().each { task -> task.builtins { java { option "lite" } } } } } lintOptions { disable "DialogFragmentCallbacksDetector", "InvalidFragmentVersionForActivityResult", "CheckedExceptions" } } kotlin { explicitApi = 'strict' } dependencies { implementation rootProject.ext.kotlin_libs.std implementation rootProject.ext.std_libs.androidx_core // A newer version gets pulled in with AOSP via core, so we include fragment here explicitly implementation rootProject.ext.std_libs.androidx_fragment implementation rootProject.ext.std_libs.androidx_activity implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx implementation rootProject.ext.std_libs.androidx_constraintlayout implementation rootProject.ext.std_libs.androidx_documentfile implementation rootProject.ext.std_libs.com_google_android_material implementation rootProject.ext.storage_libs.androidx_room_runtime implementation rootProject.ext.storage_libs.com_google_protobuf_javalite implementation rootProject.ext.storage_libs.com_google_crypto_tink_android kapt('androidx.room:room-compiler') { version { strictly "$room_version" } } lintChecks rootProject.ext.lint_libs.exceptions testImplementation "junit:junit:$junit4_version" testImplementation "io.mockk:mockk:$mockk_version" testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version" } apply from: "${rootProject.rootDir}/gradle/ktlint.gradle"