Migrate to Gradle Kotlin DSL (#936)
This commit is contained in:
parent
cc6f1ad605
commit
356a8cd8c6
12 changed files with 313 additions and 299 deletions
|
@ -12,6 +12,7 @@
|
|||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
<option value="$PROJECT_DIR$/buildSrc" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
|
|
142
app/build.gradle
142
app/build.gradle
|
@ -1,142 +0,0 @@
|
|||
/*
|
||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
plugins {
|
||||
id 'kotlin-android'
|
||||
}
|
||||
|
||||
final def keystorePropertiesFile = rootProject.file 'keystore.properties'
|
||||
|
||||
static final def isSnapshot() {
|
||||
return System.env['GITHUB_WORKFLOW'] != null && System.env['SNAPSHOT'] != null
|
||||
}
|
||||
|
||||
android {
|
||||
if (isSnapshot()) {
|
||||
android.applicationVariants.all { final variant ->
|
||||
variant.outputs.all {
|
||||
outputFileName = "aps-${variant.getFlavorName()}_${defaultConfig.versionName}.apk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures.viewBinding = true
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'dev.msfjarvis.aps'
|
||||
versionCode 11001
|
||||
versionName '1.11.0-SNAPSHOT'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError = true // make sure build fails with lint errors!
|
||||
disable 'MissingTranslation', 'PluralsCandidate'
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude '.readme'
|
||||
exclude 'META-INF/LICENSE.txt'
|
||||
exclude 'META-INF/NOTICE.txt'
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled = true
|
||||
proguardFiles 'proguard-android-optimize.txt', 'proguard-rules.pro'
|
||||
buildConfigField 'boolean', 'ENABLE_DEBUG_FEATURES', isSnapshot() ? 'true' : 'false'
|
||||
}
|
||||
debug {
|
||||
applicationIdSuffix = '.debug'
|
||||
versionNameSuffix = '-debug'
|
||||
minifyEnabled = false
|
||||
buildConfigField 'boolean', 'ENABLE_DEBUG_FEATURES', 'true'
|
||||
}
|
||||
}
|
||||
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
final def keystoreProperties = new Properties()
|
||||
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
||||
signingConfigs {
|
||||
release {
|
||||
keyAlias = keystoreProperties['keyAlias']
|
||||
keyPassword = keystoreProperties['keyPassword']
|
||||
storeFile = rootProject.file keystoreProperties['storeFile']
|
||||
storePassword = keystoreProperties['storePassword']
|
||||
}
|
||||
}
|
||||
buildTypes.release.signingConfig = signingConfigs.release
|
||||
buildTypes.debug.signingConfig = signingConfigs.release
|
||||
}
|
||||
|
||||
flavorDimensions "free"
|
||||
productFlavors {
|
||||
free {
|
||||
versionNameSuffix "-free"
|
||||
}
|
||||
nonFree {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation deps.androidx.activity_ktx
|
||||
implementation deps.androidx.annotation
|
||||
implementation deps.androidx.autofill
|
||||
implementation deps.androidx.appcompat
|
||||
implementation deps.androidx.biometric
|
||||
implementation deps.androidx.constraint_layout
|
||||
implementation deps.androidx.core_ktx
|
||||
implementation deps.androidx.documentfile
|
||||
implementation deps.androidx.fragment_ktx
|
||||
implementation deps.androidx.lifecycle_common
|
||||
implementation deps.androidx.lifecycle_livedata_ktx
|
||||
implementation deps.androidx.lifecycle_viewmodel_ktx
|
||||
implementation deps.androidx.material
|
||||
implementation deps.androidx.preference
|
||||
implementation deps.androidx.recycler_view
|
||||
implementation deps.androidx.recycler_view_selection
|
||||
implementation deps.androidx.security
|
||||
implementation deps.androidx.swiperefreshlayout
|
||||
|
||||
implementation deps.kotlin.coroutines.android
|
||||
implementation deps.kotlin.coroutines.core
|
||||
|
||||
implementation deps.first_party.openpgp_ktx
|
||||
implementation deps.first_party.zxing_android_embedded
|
||||
|
||||
implementation deps.third_party.commons_codec
|
||||
implementation deps.third_party.fastscroll
|
||||
implementation(deps.third_party.jgit) {
|
||||
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
|
||||
}
|
||||
implementation deps.third_party.jsch
|
||||
implementation deps.third_party.sshj
|
||||
implementation deps.third_party.bouncycastle
|
||||
implementation deps.third_party.plumber
|
||||
implementation deps.third_party.ssh_auth
|
||||
implementation deps.third_party.timber
|
||||
implementation deps.third_party.timberkt
|
||||
|
||||
if (isSnapshot()) {
|
||||
implementation deps.third_party.leakcanary
|
||||
implementation deps.third_party.whatthestack
|
||||
} else {
|
||||
debugImplementation deps.third_party.leakcanary
|
||||
debugImplementation deps.third_party.whatthestack
|
||||
}
|
||||
|
||||
nonFreeImplementation deps.non_free.google_play_auth_api_phone
|
||||
|
||||
// Testing-only dependencies
|
||||
androidTestImplementation deps.testing.junit
|
||||
androidTestImplementation deps.testing.kotlin_test_junit
|
||||
androidTestImplementation deps.testing.androidx.runner
|
||||
androidTestImplementation deps.testing.androidx.rules
|
||||
androidTestImplementation deps.testing.androidx.junit
|
||||
androidTestImplementation deps.testing.androidx.espresso_core
|
||||
androidTestImplementation deps.testing.androidx.espresso_intents
|
||||
|
||||
testImplementation deps.testing.junit
|
||||
testImplementation deps.testing.kotlin_test_junit
|
||||
}
|
147
app/build.gradle.kts
Normal file
147
app/build.gradle.kts
Normal file
|
@ -0,0 +1,147 @@
|
|||
/*
|
||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
import java.util.Properties
|
||||
import com.android.build.gradle.internal.api.BaseVariantOutputImpl
|
||||
|
||||
plugins {
|
||||
kotlin("android")
|
||||
}
|
||||
|
||||
val keystorePropertiesFile = rootProject.file("keystore.properties")
|
||||
|
||||
fun isSnapshot(): Boolean {
|
||||
return System.getenv("GITHUB_WORKFLOW") != null && System.getenv("SNAPSHOT") != null
|
||||
}
|
||||
|
||||
android {
|
||||
if (isSnapshot()) {
|
||||
applicationVariants.all {
|
||||
outputs.all {
|
||||
(this as BaseVariantOutputImpl).outputFileName = "aps-${flavorName}_$versionName.apk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures.viewBinding = true
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "dev.msfjarvis.aps"
|
||||
versionCode = 11001
|
||||
versionName = "1.11.0-SNAPSHOT"
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
isAbortOnError = true
|
||||
isCheckReleaseBuilds = false
|
||||
disable("MissingTranslation", "PluralsCandidate")
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude(".readme")
|
||||
exclude("META-INF/LICENSE.txt")
|
||||
exclude("META-INF/NOTICE.txt")
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
named("release") {
|
||||
isMinifyEnabled = true
|
||||
setProguardFiles(listOf("proguard-android-optimize.txt", "proguard-rules.pro"))
|
||||
buildConfigField("boolean", "ENABLE_DEBUG_FEATURES", if (isSnapshot()) "true" else "false")
|
||||
}
|
||||
named("debug") {
|
||||
applicationIdSuffix = ".debug"
|
||||
versionNameSuffix = "-debug"
|
||||
isMinifyEnabled = false
|
||||
buildConfigField("boolean", "ENABLE_DEBUG_FEATURES", "true")
|
||||
}
|
||||
}
|
||||
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
val keystoreProperties = Properties()
|
||||
keystoreProperties.load(keystorePropertiesFile.inputStream())
|
||||
signingConfigs {
|
||||
register("release") {
|
||||
keyAlias = keystoreProperties["keyAlias"] as String
|
||||
keyPassword = keystoreProperties["keyPassword"] as String
|
||||
storeFile = rootProject.file(keystoreProperties["storeFile"] as String)
|
||||
storePassword = keystoreProperties["storePassword"] as String
|
||||
}
|
||||
}
|
||||
listOf("release", "debug").map {
|
||||
buildTypes.getByName(it).signingConfig = signingConfigs.getByName(it)
|
||||
}
|
||||
}
|
||||
|
||||
flavorDimensions("free")
|
||||
productFlavors {
|
||||
create("free") {
|
||||
versionNameSuffix = "-free"
|
||||
}
|
||||
create("nonFree") {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly(Dependencies.AndroidX.annotation)
|
||||
implementation(Dependencies.AndroidX.activity_ktx)
|
||||
implementation(Dependencies.AndroidX.autofill)
|
||||
implementation(Dependencies.AndroidX.appcompat)
|
||||
implementation(Dependencies.AndroidX.biometric)
|
||||
implementation(Dependencies.AndroidX.constraint_layout)
|
||||
implementation(Dependencies.AndroidX.core_ktx)
|
||||
implementation(Dependencies.AndroidX.documentfile)
|
||||
implementation(Dependencies.AndroidX.fragment_ktx)
|
||||
implementation(Dependencies.AndroidX.lifecycle_common)
|
||||
implementation(Dependencies.AndroidX.lifecycle_livedata_ktx)
|
||||
implementation(Dependencies.AndroidX.lifecycle_viewmodel_ktx)
|
||||
implementation(Dependencies.AndroidX.material)
|
||||
implementation(Dependencies.AndroidX.preference)
|
||||
implementation(Dependencies.AndroidX.recycler_view)
|
||||
implementation(Dependencies.AndroidX.recycler_view_selection)
|
||||
implementation(Dependencies.AndroidX.security)
|
||||
implementation(Dependencies.AndroidX.swiperefreshlayout)
|
||||
|
||||
implementation(Dependencies.Kotlin.Coroutines.android)
|
||||
implementation(Dependencies.Kotlin.Coroutines.core)
|
||||
|
||||
implementation(Dependencies.FirstParty.openpgp_ktx)
|
||||
implementation(Dependencies.FirstParty.zxing_android_embedded)
|
||||
|
||||
implementation(Dependencies.ThirdParty.commons_codec)
|
||||
implementation(Dependencies.ThirdParty.fastscroll)
|
||||
implementation(Dependencies.ThirdParty.jgit) {
|
||||
exclude(group = "org.apache.httpcomponents", module = "httpclient")
|
||||
}
|
||||
implementation(Dependencies.ThirdParty.jsch)
|
||||
implementation(Dependencies.ThirdParty.sshj)
|
||||
implementation(Dependencies.ThirdParty.bouncycastle)
|
||||
implementation(Dependencies.ThirdParty.plumber)
|
||||
implementation(Dependencies.ThirdParty.ssh_auth)
|
||||
implementation(Dependencies.ThirdParty.timber)
|
||||
implementation(Dependencies.ThirdParty.timberkt)
|
||||
|
||||
if (isSnapshot()) {
|
||||
implementation(Dependencies.ThirdParty.leakcanary)
|
||||
implementation(Dependencies.ThirdParty.whatthestack)
|
||||
} else {
|
||||
debugImplementation(Dependencies.ThirdParty.leakcanary)
|
||||
debugImplementation(Dependencies.ThirdParty.whatthestack)
|
||||
}
|
||||
|
||||
"nonFreeImplementation"(Dependencies.NonFree.google_play_auth_api_phone)
|
||||
|
||||
// Testing-only dependencies
|
||||
androidTestImplementation(Dependencies.Testing.junit)
|
||||
androidTestImplementation(Dependencies.Testing.kotlin_test_junit)
|
||||
androidTestImplementation(Dependencies.Testing.AndroidX.runner)
|
||||
androidTestImplementation(Dependencies.Testing.AndroidX.rules)
|
||||
androidTestImplementation(Dependencies.Testing.AndroidX.junit)
|
||||
androidTestImplementation(Dependencies.Testing.AndroidX.espresso_core)
|
||||
androidTestImplementation(Dependencies.Testing.AndroidX.espresso_intents)
|
||||
|
||||
testImplementation(Dependencies.Testing.junit)
|
||||
testImplementation(Dependencies.Testing.kotlin_test_junit)
|
||||
}
|
69
build.gradle
69
build.gradle
|
@ -1,69 +0,0 @@
|
|||
/*
|
||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
buildscript {
|
||||
apply from: rootProject.file('dependencies.gradle')
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath deps.gradle_plugin.android
|
||||
classpath deps.gradle_plugin.kotlin
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'com.github.ben-manes.versions' version '0.29.0'
|
||||
}
|
||||
|
||||
subprojects {
|
||||
apply from: rootProject.file('dependencies.gradle')
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
maven {
|
||||
url 'https://jitpack.io'
|
||||
}
|
||||
}
|
||||
pluginManager.withPlugin('kotlin-android') {
|
||||
dependencies {
|
||||
implementation deps.kotlin.stdlib8
|
||||
}
|
||||
}
|
||||
if (name == 'app') {
|
||||
apply plugin: 'com.android.application'
|
||||
} else {
|
||||
apply plugin: 'com.android.library'
|
||||
}
|
||||
android {
|
||||
compileSdkVersion versions.compileSdk
|
||||
buildToolsVersion = versions.buildTools
|
||||
defaultConfig {
|
||||
minSdkVersion versions.minSdk
|
||||
targetSdkVersion versions.targetSdk
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
tasks.withType(JavaCompile) {
|
||||
options.compilerArgs << '-Xlint:unchecked'
|
||||
options.deprecation = true
|
||||
}
|
||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.wrapper {
|
||||
gradleVersion = "6.5.1"
|
||||
distributionType = Wrapper.DistributionType.ALL
|
||||
distributionSha256Sum = "143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920"
|
||||
}
|
65
build.gradle.kts
Normal file
65
build.gradle.kts
Normal file
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import com.android.build.gradle.BaseExtension
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath(Plugins.agp)
|
||||
classpath(Plugins.kotlin)
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id("com.github.ben-manes.versions") version "0.29.0"
|
||||
id("com.autonomousapps.dependency-analysis") version "0.53.0"
|
||||
}
|
||||
|
||||
subprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
maven {
|
||||
setUrl("https://jitpack.io")
|
||||
}
|
||||
}
|
||||
if (name == "app") {
|
||||
apply(plugin = "com.android.application")
|
||||
} else {
|
||||
apply(plugin = "com.android.library")
|
||||
}
|
||||
configure<BaseExtension> {
|
||||
compileSdkVersion(29)
|
||||
defaultConfig {
|
||||
minSdkVersion(23)
|
||||
targetSdkVersion(29)
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
tasks.withType<JavaCompile> {
|
||||
options.compilerArgs.add("-Xlint:unchecked")
|
||||
options.isDeprecation = true
|
||||
}
|
||||
}
|
||||
tasks.withType<KotlinCompile> {
|
||||
kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.wrapper {
|
||||
gradleVersion = "6.5.1"
|
||||
distributionType = Wrapper.DistributionType.ALL
|
||||
distributionSha256Sum = "143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920"
|
||||
}
|
1
buildSrc/.gitignore
vendored
Normal file
1
buildSrc/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/build
|
11
buildSrc/build.gradle.kts
Normal file
11
buildSrc/build.gradle.kts
Normal file
|
@ -0,0 +1,11 @@
|
|||
plugins {
|
||||
`kotlin-dsl`
|
||||
}
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
|
||||
kotlinDslPluginOptions {
|
||||
experimentalWarning.set(false)
|
||||
}
|
84
buildSrc/src/main/java/Dependencies.kt
Normal file
84
buildSrc/src/main/java/Dependencies.kt
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
|
||||
object Plugins {
|
||||
|
||||
const val agp = "com.android.tools.build:gradle:4.0.1"
|
||||
const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"
|
||||
}
|
||||
|
||||
object Dependencies {
|
||||
object Kotlin {
|
||||
object Coroutines {
|
||||
|
||||
const val android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7"
|
||||
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7"
|
||||
}
|
||||
}
|
||||
|
||||
object AndroidX {
|
||||
|
||||
const val activity_ktx = "androidx.activity:activity-ktx:1.2.0-alpha07"
|
||||
const val annotation = "androidx.annotation:annotation:1.2.0-alpha01"
|
||||
const val autofill = "androidx.autofill:autofill:1.1.0-alpha01"
|
||||
const val appcompat = "androidx.appcompat:appcompat:1.3.0-alpha01"
|
||||
const val biometric = "androidx.biometric:biometric:1.1.0-alpha01"
|
||||
const val constraint_layout = "androidx.constraintlayout:constraintlayout:2.0.0-beta8"
|
||||
const val core_ktx = "androidx.core:core-ktx:1.5.0-alpha01"
|
||||
const val documentfile = "androidx.documentfile:documentfile:1.0.1"
|
||||
const val fragment_ktx = "androidx.fragment:fragment-ktx:1.3.0-alpha07"
|
||||
const val lifecycle_common = "androidx.lifecycle:lifecycle-common-java8:2.3.0-alpha06"
|
||||
const val lifecycle_livedata_ktx = "androidx.lifecycle:lifecycle-livedata-ktx:2.3.0-alpha06"
|
||||
const val lifecycle_viewmodel_ktx = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0-alpha06"
|
||||
const val material = "com.google.android.material:material:1.3.0-alpha01"
|
||||
const val preference = "androidx.preference:preference:1.1.1"
|
||||
const val recycler_view = "androidx.recyclerview:recyclerview:1.2.0-alpha05"
|
||||
const val recycler_view_selection = "androidx.recyclerview:recyclerview-selection:1.1.0-rc01"
|
||||
const val security = "androidx.security:security-crypto:1.1.0-alpha01"
|
||||
const val swiperefreshlayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
|
||||
}
|
||||
|
||||
object FirstParty {
|
||||
|
||||
const val openpgp_ktx = "com.github.android-password-store:openpgp-ktx:2.0.0"
|
||||
const val zxing_android_embedded = "com.github.android-password-store:zxing-android-embedded:4.1.0-aps"
|
||||
}
|
||||
|
||||
object ThirdParty {
|
||||
|
||||
const val bouncycastle = "org.bouncycastle:bcprov-jdk15on:1.66"
|
||||
const val commons_codec = "commons-codec:commons-codec:1.14"
|
||||
const val fastscroll = "me.zhanghai.android.fastscroll:library:1.1.4"
|
||||
const val jsch = "com.jcraft:jsch:0.1.55"
|
||||
const val jgit = "org.eclipse.jgit:org.eclipse.jgit:3.7.1.201504261725-r"
|
||||
const val leakcanary = "com.squareup.leakcanary:leakcanary-android:2.4"
|
||||
const val plumber = "com.squareup.leakcanary:plumber-android:2.4"
|
||||
const val sshj = "com.hierynomus:sshj:0.29.0"
|
||||
const val ssh_auth = "org.sufficientlysecure:sshauthentication-api:1.0"
|
||||
const val timber = "com.jakewharton.timber:timber:4.7.1"
|
||||
const val timberkt = "com.github.ajalt:timberkt:1.5.1"
|
||||
const val whatthestack = "com.github.haroldadmin:WhatTheStack:0.0.4"
|
||||
}
|
||||
|
||||
object NonFree {
|
||||
|
||||
const val google_play_auth_api_phone = "com.google.android.gms:play-services-auth-api-phone:17.4.0"
|
||||
}
|
||||
|
||||
object Testing {
|
||||
|
||||
const val junit = "junit:junit:4.13"
|
||||
const val kotlin_test_junit = "org.jetbrains.kotlin:kotlin-test-junit:1.3.72"
|
||||
|
||||
object AndroidX {
|
||||
|
||||
const val runner = "androidx.test:runner:1.3.0-rc01"
|
||||
const val rules = "androidx.test:rules:1.3.0-rc01"
|
||||
const val junit = "androidx.test.ext:junit:1.1.2-rc01"
|
||||
const val espresso_core = "androidx.test.espresso:espresso-core:3.3.0-rc01"
|
||||
const val espresso_intents = "androidx.test.espresso:espresso-intents:3.3.0-rc01"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
/*
|
||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
ext.versions = [
|
||||
minSdk: 23,
|
||||
targetSdk: 29,
|
||||
compileSdk: 29,
|
||||
buildTools: '29.0.3'
|
||||
]
|
||||
|
||||
ext.deps = [
|
||||
gradle_plugin: [
|
||||
android: 'com.android.tools.build:gradle:4.0.1',
|
||||
kotlin: 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72',
|
||||
],
|
||||
|
||||
kotlin: [
|
||||
coroutines: [
|
||||
android: 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7',
|
||||
core: 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7',
|
||||
],
|
||||
stdlib8: 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72'
|
||||
],
|
||||
|
||||
androidx: [
|
||||
activity_ktx: 'androidx.activity:activity-ktx:1.2.0-alpha07',
|
||||
annotation: 'androidx.annotation:annotation:1.2.0-alpha01',
|
||||
autofill: 'androidx.autofill:autofill:1.1.0-alpha01',
|
||||
appcompat: 'androidx.appcompat:appcompat:1.3.0-alpha01',
|
||||
biometric: 'androidx.biometric:biometric:1.1.0-alpha01',
|
||||
constraint_layout: 'androidx.constraintlayout:constraintlayout:2.0.0-beta8',
|
||||
core_ktx: 'androidx.core:core-ktx:1.5.0-alpha01',
|
||||
documentfile: 'androidx.documentfile:documentfile:1.0.1',
|
||||
fragment_ktx: 'androidx.fragment:fragment-ktx:1.3.0-alpha07',
|
||||
lifecycle_common: 'androidx.lifecycle:lifecycle-common-java8:2.3.0-alpha06',
|
||||
lifecycle_livedata_ktx: 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0-alpha06',
|
||||
lifecycle_viewmodel_ktx: 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0-alpha06',
|
||||
material: 'com.google.android.material:material:1.3.0-alpha01',
|
||||
preference: 'androidx.preference:preference:1.1.1',
|
||||
recycler_view: 'androidx.recyclerview:recyclerview:1.2.0-alpha05',
|
||||
recycler_view_selection: 'androidx.recyclerview:recyclerview-selection:1.1.0-rc01',
|
||||
security: 'androidx.security:security-crypto:1.1.0-alpha01',
|
||||
swiperefreshlayout: 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01'
|
||||
],
|
||||
|
||||
first_party: [
|
||||
openpgp_ktx: 'com.github.android-password-store:openpgp-ktx:2.0.0',
|
||||
zxing_android_embedded: 'com.github.android-password-store:zxing-android-embedded:4.1.0-aps'
|
||||
],
|
||||
|
||||
third_party: [
|
||||
bouncycastle: 'org.bouncycastle:bcprov-jdk15on:1.66',
|
||||
commons_codec: 'commons-codec:commons-codec:1.14',
|
||||
fastscroll: 'me.zhanghai.android.fastscroll:library:1.1.4',
|
||||
jsch: 'com.jcraft:jsch:0.1.55',
|
||||
jgit: 'org.eclipse.jgit:org.eclipse.jgit:3.7.1.201504261725-r',
|
||||
leakcanary: 'com.squareup.leakcanary:leakcanary-android:2.4',
|
||||
plumber: 'com.squareup.leakcanary:plumber-android:2.4',
|
||||
sshj: 'com.hierynomus:sshj:0.29.0',
|
||||
ssh_auth: 'org.sufficientlysecure:sshauthentication-api:1.0',
|
||||
timber: 'com.jakewharton.timber:timber:4.7.1',
|
||||
timberkt: 'com.github.ajalt:timberkt:1.5.1',
|
||||
whatthestack: 'com.github.haroldadmin:WhatTheStack:0.0.4',
|
||||
],
|
||||
|
||||
non_free: [
|
||||
google_play_auth_api_phone: 'com.google.android.gms:play-services-auth-api-phone:17.4.0',
|
||||
],
|
||||
|
||||
testing: [
|
||||
junit: 'junit:junit:4.13',
|
||||
kotlin_test_junit: 'org.jetbrains.kotlin:kotlin-test-junit:1.3.72',
|
||||
androidx: [
|
||||
runner: 'androidx.test:runner:1.3.0-rc01',
|
||||
rules: 'androidx.test:rules:1.3.0-rc01',
|
||||
junit: 'androidx.test.ext:junit:1.1.2-rc01',
|
||||
espresso_core: 'androidx.test.espresso:espresso-core:3.3.0-rc01',
|
||||
espresso_intents: 'androidx.test.espresso:espresso-intents:3.3.0-rc01'
|
||||
]
|
||||
]
|
||||
]
|
|
@ -20,3 +20,6 @@ android.useMinimalKeepRules=true
|
|||
# references to the resources it declares instead of declarations plus all
|
||||
# transitive dependency references.
|
||||
android.namespacedRClass=true
|
||||
|
||||
# Gradle FS watching
|
||||
org.gradle.unsafe.watch-fs=true
|
||||
|
|
5
gradle/wrapper/gradle-wrapper.properties
vendored
5
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,8 +1,3 @@
|
|||
#
|
||||
# Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
# SPDX-License-Identifier: GPL-3.0-only
|
||||
#
|
||||
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||
* SPDX-License-Identifier: GPL-3.0-only
|
||||
*/
|
||||
include ':app'
|
||||
include(":app")
|
Loading…
Reference in a new issue