/* * Copyright (c) 2021 DuckDuckGo * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ plugins { id 'com.android.library' id 'kotlin-android' id 'com.squareup.anvil' } apply from: "$rootProject.projectDir/gradle/android-library.gradle" ext { autofillDisableAuthRequirementBuildFlag = "autofill-disable-auth-requirement" } dependencies { implementation project(path: ':app-build-config-api') implementation project(path: ':privacy-config-api') implementation project(path: ':feature-toggles-api') implementation project(path: ':di') implementation project(path: ':common-utils') implementation project(path: ':common-ui') implementation project(path: ':autofill-api') implementation project(path: ':browser-api') implementation project(path: ':autofill-store') implementation project(path: ':statistics') testImplementation project(path: ':autofill-test') implementation project(path: ':sync-api') implementation project(path: ':navigation-api') implementation project(':user-agent-api') anvil project(path: ':anvil-compiler') implementation project(path: ':anvil-annotations') implementation AndroidX.appCompat implementation Google.android.material implementation AndroidX.constraintLayout implementation JakeWharton.timber implementation KotlinX.coroutines.core implementation AndroidX.fragment.ktx implementation "androidx.webkit:webkit:_" implementation Square.retrofit2.converter.moshi implementation "com.squareup.moshi:moshi-kotlin:_" implementation "com.squareup.moshi:moshi-adapters:_" implementation Google.dagger implementation AndroidX.core.ktx implementation AndroidX.work.runtimeKtx implementation AndroidX.room.ktx implementation AndroidX.biometric implementation "net.zetetic:android-database-sqlcipher:_" // Testing dependencies testImplementation "org.mockito.kotlin:mockito-kotlin:_" testImplementation Testing.junit4 testImplementation AndroidX.core testImplementation AndroidX.test.ext.junit testImplementation "androidx.test:runner:_" testImplementation Testing.robolectric testImplementation CashApp.turbine testImplementation "org.jetbrains.kotlin:kotlin-reflect:_" testImplementation project(path: ':common-test') testImplementation (KotlinX.coroutines.test) { // https://github.com/Kotlin/kotlinx.coroutines/issues/2023 // conflicts with mockito due to direct inclusion of byte buddy exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug" } coreLibraryDesugaring Android.tools.desugarJdkLibs } android { anvil { generateDaggerFactories = true // default is false } lint { baseline file("lint-baseline.xml") } testOptions { unitTests { includeAndroidResources = true } } namespace 'com.duckduckgo.autofill.impl' compileOptions { coreLibraryDesugaringEnabled = true } defaultConfig { if (project.hasProperty("$autofillDisableAuthRequirementBuildFlag")) { buildConfigField "boolean", "AUTH_REQUIRED", "false" } else { buildConfigField "boolean", "AUTH_REQUIRED", "true" } } } tasks.register('installForAutofillTesting', Exec) { commandLine "$rootDir/gradlew", ':app:installInternalRelease', "-P$autofillDisableAuthRequirementBuildFlag" } tasks.register('autofillTestLocal', Exec) { commandLine 'maestro', 'test', '--include-tags', 'autofillNoAuthTests', "$rootDir/.maestro" dependsOn 'installForAutofillTesting' }