blob: 78d2c50a0e5c78ca54671e654743297f0f46e709 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
/*
* 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 11011
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
}
|