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>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
<option value="$PROJECT_DIR$/app" />
|
<option value="$PROJECT_DIR$/app" />
|
||||||
|
<option value="$PROJECT_DIR$/buildSrc" />
|
||||||
</set>
|
</set>
|
||||||
</option>
|
</option>
|
||||||
<option name="resolveModulePerSourceSet" value="false" />
|
<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
|
# references to the resources it declares instead of declarations plus all
|
||||||
# transitive dependency references.
|
# transitive dependency references.
|
||||||
android.namespacedRClass=true
|
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
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920
|
distributionSha256Sum=143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
* Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
include ':app'
|
include(":app")
|
Loading…
Reference in a new issue