apply plugin: 'com.android.application' buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.2' } } allprojects { repositories { google() jcenter() } } def getVersionCode = { -> try { def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'rev-list', 'HEAD', '--count' standardOutput = stdout } return Integer.parseInt(stdout.toString().trim()) } catch (ignored) { return -1 } } def getVersionName = { -> try { def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'describe', '--tags' standardOutput = stdout } exec { commandLine 'git', 'log', '--format="%h"', '-n 1' standardOutput = stdout } return stdout.toString().replace('\n', '-').replace('"', '').trim() } catch (ignored) { return null } } android { compileSdkVersion 29 defaultConfig { applicationId "de.dennisguse.opentracks" manifestPlaceholders = [ applicationLogo: "@drawable/ic_logo_color_24dp", applicationName: "@string/app_name" ] versionCode 3386 //versionCode getVersionCode() //Useful for debugging. versionName "v3.7.3" buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\"" minSdkVersion 21 targetSdkVersion 29 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { debug { applicationIdSuffix ".debug" versionNameSuffix "-debug" manifestPlaceholders = [ applicationLogo: "@drawable/ic_logo_black_24dp", applicationName: "OpenTracks (Debug)" ] } release { minifyEnabled false } releasePlayStore { applicationIdSuffix ".playstore" versionNameSuffix "-PlayStore" } } applicationVariants.all { variant -> variant.resValue "string", "applicationId", variant.applicationId } } dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.preference:preference:1.1.0' implementation 'androidx.documentfile:documentfile:1.0.1' androidTestImplementation 'androidx.test:core:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-intents:3.2.0' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test:rules:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'org.mockito:mockito-android:3.0.0' testImplementation 'androidx.test:core:1.2.0' testImplementation 'org.mockito:mockito-core:3.0.0' implementation 'com.google.android.material:material:1.1.0' }