2014-12-10 10:53:37 +01:00
|
|
|
apply plugin: 'com.android.application'
|
2015-10-08 16:50:07 +02:00
|
|
|
apply plugin: 'checkstyle'
|
2016-03-01 17:30:48 +00:00
|
|
|
apply plugin: 'pmd'
|
2015-10-08 17:11:22 +02:00
|
|
|
|
2019-10-14 16:00:19 +02:00
|
|
|
/* gets the version name from the latest Git tag */
|
2016-05-19 08:27:50 +02:00
|
|
|
def getVersionName = { ->
|
|
|
|
def stdout = new ByteArrayOutputStream()
|
|
|
|
exec {
|
|
|
|
commandLine 'git', 'describe', '--tags', '--always'
|
|
|
|
standardOutput = stdout
|
|
|
|
}
|
2017-07-08 00:10:45 +02:00
|
|
|
return stdout.toString().trim()
|
2016-05-19 08:27:50 +02:00
|
|
|
}
|
|
|
|
|
2020-07-01 23:12:12 +02:00
|
|
|
def isCi = "true" == System.getenv("CI")
|
|
|
|
def preDexEnabled = "true" == System.getProperty("pre-dex", "true")
|
2017-10-25 22:15:40 +02:00
|
|
|
|
2018-05-30 17:44:21 +02:00
|
|
|
def fullApplicationId = "org.fdroid.fdroid"
|
|
|
|
def basicApplicationId = "org.fdroid.basic"
|
2018-07-20 11:47:52 +02:00
|
|
|
// yes, this actually needs both quotes https://stackoverflow.com/a/41391841
|
|
|
|
def privilegedExtensionApplicationId = '"org.fdroid.fdroid.privileged"'
|
2018-05-30 17:44:21 +02:00
|
|
|
|
2014-11-15 22:14:14 +01:00
|
|
|
android {
|
2021-02-15 20:24:19 +01:00
|
|
|
compileSdkVersion 29
|
2014-11-15 22:14:14 +01:00
|
|
|
|
2018-06-15 11:31:00 +02:00
|
|
|
defaultConfig {
|
2021-04-06 22:54:13 +02:00
|
|
|
versionCode 1012050
|
2018-06-15 11:31:00 +02:00
|
|
|
versionName getVersionName()
|
2018-07-12 12:00:08 +02:00
|
|
|
|
2020-06-15 19:09:31 +02:00
|
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
2021-04-12 16:36:17 +00:00
|
|
|
minSdkVersion 22
|
2020-07-01 22:41:19 +02:00
|
|
|
//noinspection ExpiredTargetSdkVersion
|
2020-06-15 19:00:29 +02:00
|
|
|
targetSdkVersion 25
|
2018-07-12 12:00:08 +02:00
|
|
|
/*
|
|
|
|
The Android Testing Support Library collects analytics to continuously improve the testing
|
|
|
|
experience. More specifically, it uploads a hash of the package name of the application
|
|
|
|
under test for each invocation. If you do not wish to upload this data, you can opt-out by
|
|
|
|
passing the following argument to the test runner: disableAnalytics "true".
|
|
|
|
*/
|
|
|
|
testInstrumentationRunnerArguments disableAnalytics: 'true'
|
2021-02-23 13:07:32 +08:00
|
|
|
vectorDrawables.useSupportLibrary = true
|
2018-06-15 11:31:00 +02:00
|
|
|
}
|
|
|
|
|
2014-11-15 22:14:14 +01:00
|
|
|
buildTypes {
|
2015-11-14 14:05:15 +01:00
|
|
|
// use proguard on debug too since we have unknowingly broken
|
|
|
|
// release builds before.
|
2015-08-09 19:09:02 -07:00
|
|
|
all {
|
2015-08-15 13:18:40 -07:00
|
|
|
minifyEnabled true
|
|
|
|
shrinkResources true
|
2018-07-20 11:47:52 +02:00
|
|
|
buildConfigField "String", "PRIVILEGED_EXTENSION_PACKAGE_NAME", privilegedExtensionApplicationId
|
2020-07-02 09:31:52 +02:00
|
|
|
buildConfigField "String", "ACRA_REPORT_EMAIL", '"reports@f-droid.org"' // String needs both quotes
|
2015-08-15 13:18:40 -07:00
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
2016-04-04 11:59:35 +02:00
|
|
|
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'src/androidTest/proguard-rules.pro'
|
2014-11-15 22:14:14 +01:00
|
|
|
}
|
2018-06-15 11:31:00 +02:00
|
|
|
debug {
|
|
|
|
applicationIdSuffix ".debug"
|
|
|
|
resValue "string", "applicationId", fullApplicationId + applicationIdSuffix
|
|
|
|
versionNameSuffix "-debug"
|
|
|
|
println 'buildTypes.debug defaultConfig.versionCode ' + defaultConfig.versionCode
|
|
|
|
}
|
2014-11-15 22:14:14 +01:00
|
|
|
}
|
|
|
|
|
2018-05-30 17:44:21 +02:00
|
|
|
flavorDimensions "base"
|
|
|
|
productFlavors {
|
|
|
|
full {
|
|
|
|
dimension "base"
|
|
|
|
applicationId fullApplicationId
|
|
|
|
resValue "string", "applicationId", fullApplicationId
|
|
|
|
}
|
|
|
|
basic {
|
|
|
|
dimension "base"
|
|
|
|
applicationId basicApplicationId
|
|
|
|
resValue "string", "applicationId", basicApplicationId
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-05-20 18:37:05 +02:00
|
|
|
compileOptions {
|
|
|
|
compileOptions.encoding = "UTF-8"
|
2021-02-23 17:58:56 +01:00
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
2015-05-20 18:37:05 +02:00
|
|
|
}
|
|
|
|
|
2017-09-02 23:01:09 +02:00
|
|
|
aaptOptions {
|
|
|
|
cruncherEnabled = false
|
|
|
|
}
|
|
|
|
|
2017-10-25 22:15:40 +02:00
|
|
|
dexOptions {
|
|
|
|
// Improve build server performance by allowing disabling of pre-dexing
|
|
|
|
// see http://tools.android.com/tech-docs/new-build-system/tips#TOC-Improving-Build-Server-performance
|
|
|
|
// Skip pre-dexing when running on CI or when disabled via -Dpre-dex=false.
|
|
|
|
preDexLibraries = preDexEnabled && !isCi
|
|
|
|
}
|
|
|
|
|
2016-03-22 16:08:17 +01:00
|
|
|
testOptions {
|
2016-05-10 14:34:15 +02:00
|
|
|
unitTests {
|
2018-04-19 15:45:52 +02:00
|
|
|
includeAndroidResources = true
|
2016-05-10 14:34:15 +02:00
|
|
|
// prevent tests from dying on android.util.Log calls
|
|
|
|
returnDefaultValues = true
|
|
|
|
all {
|
|
|
|
// All the usual Gradle options.
|
|
|
|
testLogging {
|
|
|
|
events "skipped", "failed", "standardOut", "standardError"
|
|
|
|
showStandardStreams = true
|
|
|
|
}
|
2021-01-12 18:02:03 +01:00
|
|
|
systemProperty 'robolectric.dependency.repo.url', 'https://repo1.maven.org/maven2'
|
2021-02-18 19:02:18 +01:00
|
|
|
|
|
|
|
// hack to avoid memory leak crashes
|
2021-02-19 09:25:27 +01:00
|
|
|
forkEvery = 1
|
2016-05-10 14:34:15 +02:00
|
|
|
}
|
|
|
|
}
|
2016-03-22 16:08:17 +01:00
|
|
|
}
|
|
|
|
|
2016-10-07 12:15:15 +02:00
|
|
|
sourceSets {
|
|
|
|
test {
|
|
|
|
java.srcDirs += "$projectDir/src/testShared/java"
|
|
|
|
}
|
|
|
|
|
|
|
|
androidTest {
|
|
|
|
java.srcDirs += "$projectDir/src/testShared/java"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-05-20 18:37:05 +02:00
|
|
|
lintOptions {
|
|
|
|
checkReleaseBuilds false
|
2016-06-17 09:10:35 +02:00
|
|
|
abortOnError true
|
2015-07-28 21:39:33 -07:00
|
|
|
|
2015-08-09 21:33:36 -07:00
|
|
|
htmlReport true
|
|
|
|
xmlReport false
|
|
|
|
textReport false
|
|
|
|
|
2017-05-10 13:45:50 +02:00
|
|
|
lintConfig file("lint.xml")
|
2015-05-20 18:37:05 +02:00
|
|
|
}
|
2015-11-01 14:25:58 +01:00
|
|
|
|
|
|
|
packagingOptions {
|
|
|
|
exclude 'META-INF/LICENSE'
|
|
|
|
exclude 'META-INF/LICENSE.txt'
|
|
|
|
exclude 'META-INF/NOTICE'
|
|
|
|
exclude 'META-INF/NOTICE.txt'
|
|
|
|
exclude 'META-INF/INDEX.LIST'
|
|
|
|
exclude '.readme'
|
|
|
|
}
|
2014-11-15 22:14:14 +01:00
|
|
|
}
|
2015-10-08 17:11:22 +02:00
|
|
|
|
2018-06-01 11:08:30 +02:00
|
|
|
dependencies {
|
2020-06-15 19:29:53 +02:00
|
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
2020-07-01 21:42:23 +02:00
|
|
|
implementation 'androidx.preference:preference:1.1.1'
|
2020-06-15 19:09:31 +02:00
|
|
|
implementation 'androidx.gridlayout:gridlayout:1.0.0'
|
2020-06-15 19:29:53 +02:00
|
|
|
implementation 'androidx.annotation:annotation:1.1.0'
|
|
|
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
2020-06-15 19:09:31 +02:00
|
|
|
implementation 'androidx.cardview:cardview:1.0.0'
|
2020-06-15 19:29:53 +02:00
|
|
|
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
2020-06-15 19:09:31 +02:00
|
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
|
|
implementation 'androidx.palette:palette:1.0.0'
|
2021-01-25 15:15:26 +01:00
|
|
|
implementation 'androidx.work:work-runtime:2.4.0'
|
2020-07-01 21:42:23 +02:00
|
|
|
|
|
|
|
implementation 'com.google.android.material:material:1.1.0'
|
2018-06-01 11:08:30 +02:00
|
|
|
|
|
|
|
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
|
2018-12-31 17:36:33 +01:00
|
|
|
implementation 'com.google.zxing:core:3.3.3'
|
2018-08-07 17:20:32 +02:00
|
|
|
implementation 'info.guardianproject.netcipher:netcipher:2.0.0-beta1'
|
2019-05-29 17:17:17 +02:00
|
|
|
implementation 'info.guardianproject.panic:panic:1.0'
|
2018-12-31 17:36:33 +01:00
|
|
|
implementation 'commons-io:commons-io:2.6'
|
|
|
|
implementation 'commons-net:commons-net:3.6'
|
2018-06-01 11:08:30 +02:00
|
|
|
implementation 'ch.acra:acra:4.9.1'
|
|
|
|
implementation 'io.reactivex:rxjava:1.1.0'
|
|
|
|
implementation 'com.hannesdorfmann:adapterdelegates3:3.0.1'
|
2018-08-26 19:27:03 +02:00
|
|
|
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.5'
|
2018-06-01 11:08:30 +02:00
|
|
|
|
2020-06-25 09:37:22 +02:00
|
|
|
implementation 'com.fasterxml.jackson.core:jackson-core:2.11.1'
|
|
|
|
implementation 'com.fasterxml.jackson.core:jackson-annotations:2.11.1'
|
|
|
|
implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.1'
|
2018-06-01 11:08:30 +02:00
|
|
|
|
2020-07-01 22:05:49 +02:00
|
|
|
implementation 'org.bouncycastle:bcprov-jdk15on:1.65'
|
|
|
|
fullImplementation 'org.bouncycastle:bcpkix-jdk15on:1.65'
|
2018-05-30 17:44:21 +02:00
|
|
|
fullImplementation 'cc.mvdan.accesspoint:library:0.2.0'
|
2018-12-31 17:36:33 +01:00
|
|
|
fullImplementation 'org.jmdns:jmdns:3.5.5'
|
2018-05-30 17:44:21 +02:00
|
|
|
fullImplementation 'org.nanohttpd:nanohttpd:2.3.1'
|
2018-06-01 11:08:30 +02:00
|
|
|
|
2021-01-19 09:06:05 +01:00
|
|
|
testImplementation 'androidx.test:core:1.3.0'
|
|
|
|
testImplementation 'junit:junit:4.13.1'
|
2020-07-01 20:05:01 +02:00
|
|
|
testImplementation 'org.robolectric:robolectric:4.3'
|
2020-07-01 22:03:41 +02:00
|
|
|
testImplementation 'org.mockito:mockito-core:3.3.3'
|
2020-07-02 07:54:18 +02:00
|
|
|
testImplementation 'org.hamcrest:hamcrest:2.2'
|
2020-07-01 22:05:49 +02:00
|
|
|
testImplementation 'org.bouncycastle:bcprov-jdk15on:1.65'
|
2020-07-01 20:05:01 +02:00
|
|
|
|
2021-01-06 05:22:23 +05:30
|
|
|
androidTestImplementation 'androidx.arch.core:core-testing:2.1.0'
|
2021-01-19 09:06:05 +01:00
|
|
|
androidTestImplementation 'androidx.test:core:1.3.0'
|
|
|
|
androidTestImplementation 'androidx.test:runner:1.3.0'
|
|
|
|
androidTestImplementation 'androidx.test:rules:1.3.0'
|
|
|
|
androidTestImplementation 'androidx.test:monitor:1.3.0'
|
|
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
|
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
2020-06-15 19:09:31 +02:00
|
|
|
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
|
2021-01-25 15:15:26 +01:00
|
|
|
androidTestImplementation 'androidx.work:work-testing:2.4.0'
|
2018-06-01 11:08:30 +02:00
|
|
|
}
|
|
|
|
|
2015-11-30 10:35:19 +01:00
|
|
|
checkstyle {
|
2016-10-31 14:19:30 +00:00
|
|
|
toolVersion = '7.2'
|
2015-11-30 10:35:19 +01:00
|
|
|
}
|
|
|
|
|
2015-10-08 16:50:07 +02:00
|
|
|
task checkstyle(type: Checkstyle) {
|
|
|
|
configFile file("${project.rootDir}/config/checkstyle/checkstyle.xml")
|
2016-03-31 12:21:57 +01:00
|
|
|
source 'src/main/java', 'src/test/java', 'src/androidTest/java'
|
2015-10-08 16:50:07 +02:00
|
|
|
include '**/*.java'
|
|
|
|
|
|
|
|
classpath = files()
|
|
|
|
}
|
2015-10-08 17:11:22 +02:00
|
|
|
|
2016-03-01 17:30:48 +00:00
|
|
|
pmd {
|
2019-10-14 16:00:19 +02:00
|
|
|
toolVersion = '6.20.0'
|
2016-03-01 17:30:48 +00:00
|
|
|
consoleOutput = true
|
|
|
|
}
|
|
|
|
|
2016-09-28 21:58:27 +01:00
|
|
|
task pmdMain(type: Pmd) {
|
|
|
|
dependsOn 'assembleDebug'
|
2016-06-09 09:55:12 +10:00
|
|
|
ruleSetFiles = files("${project.rootDir}/config/pmd/rules.xml", "${project.rootDir}/config/pmd/rules-main.xml")
|
2016-04-23 15:59:04 +01:00
|
|
|
ruleSets = [] // otherwise defaults clash with the list in rules.xml
|
2016-06-09 09:55:12 +10:00
|
|
|
source 'src/main/java'
|
|
|
|
include '**/*.java'
|
|
|
|
}
|
|
|
|
|
2016-09-28 21:58:27 +01:00
|
|
|
task pmdTest(type: Pmd) {
|
|
|
|
dependsOn 'assembleDebug'
|
2016-06-09 09:55:12 +10:00
|
|
|
ruleSetFiles = files("${project.rootDir}/config/pmd/rules.xml", "${project.rootDir}/config/pmd/rules-test.xml")
|
|
|
|
ruleSets = [] // otherwise defaults clash with the list in rules.xml
|
|
|
|
source 'src/test/java', 'src/androidTest/java'
|
2016-04-13 13:18:20 +01:00
|
|
|
include '**/*.java'
|
2016-03-01 17:30:48 +00:00
|
|
|
}
|
|
|
|
|
2016-06-09 09:55:12 +10:00
|
|
|
task pmd(dependsOn: [pmdMain, pmdTest]) {}
|