import org.jmailen.gradle.kotlinter.tasks.FormatTask import org.jmailen.gradle.kotlinter.tasks.LintTask apply plugin: 'com.android.application' apply plugin: 'kotlin-android' def repoRootPath = projectDir.absoluteFile.parentFile.absolutePath def extraAssetsDirectory = "$project.buildDir/extraAssets" def extraJniDirectory = "$project.buildDir/extraJni" def keystorePropertiesFile = file('keystore.properties') def keystoreProperties = new Properties() if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } android { compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { applicationId "net.mullvad.mullvadvpn" minSdkVersion 19 targetSdkVersion 28 versionCode 20010099 versionName "2020.1" } if (keystorePropertiesFile.exists()) { signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { minifyEnabled false signingConfig signingConfigs.release } } } sourceSets { main { assets { srcDirs = files(extraAssetsDirectory) } jniLibs { srcDirs = files(extraJniDirectory) } } } applicationVariants.all { variant -> variant.mergeAssetsProvider.configure { dependsOn copyExtraAssets } } } repositories { jcenter() google() } dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.21' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1' implementation 'joda-time:joda-time:2.10.2' } buildscript { repositories { jcenter() google() maven { url = uri("https://plugins.gradle.org/m2/") } } dependencies { classpath 'com.android.tools.build:gradle:3.3.2' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20' classpath 'org.jmailen.gradle:kotlinter-gradle:1.22.0' } } task lintKotlin(type: LintTask, group: 'verification') { source files('src/main/kotlin') reports = [ 'plain': file('build/reports/kotlin-lint-report.txt'), ] } task format(type: FormatTask, group: 'formatting') { source files('src/main/kotlin') report file('build/reports/kotlin-format-report.txt') } lint.dependsOn lintKotlin task copyExtraAssets(type: Copy) { from "$repoRootPath/dist-assets" include "api_root_ca.pem" include "relays.json" into extraAssetsDirectory }