apply plugin: 'com.android.application' apply plugin: 'com.github.ben-manes.versions' apply plugin: 'com.github.triplet.play' dependencies { implementation 'eu.chainfire:libsuperuser:1.0.0.201704021214' implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.google.zxing:android-integration:3.3.0' implementation 'com.google.code.gson:gson:2.8.5' implementation 'org.mindrot:jbcrypt:0.4' // com.google.guava:guava:24.1-jre will crash on Android 5.x implementation 'com.google.guava:guava:26.0-android' implementation 'com.annimon:stream:1.2.1' implementation 'com.android.volley:volley:1.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.google.dagger:dagger:2.21' annotationProcessor "com.google.dagger:dagger-compiler:2.21" androidTestImplementation 'com.android.support.test:rules:1.0.2' androidTestImplementation 'com.android.support:support-annotations:28.0.0' } android { // Changes to these values need to be reflected in `.travis.yml` compileSdkVersion 28 buildToolsVersion '28.0.3' buildTypes.debug.applicationIdSuffix ".debug" dataBinding.enabled = true playAccountConfigs { defaultAccountConfig { jsonFile = file(System.getenv("SYNCTHING_RELEASE_PLAY_ACCOUNT_CONFIG_FILE") ?: 'keys.json') } } defaultConfig { applicationId "com.github.catfriend1.syncthingandroid" minSdkVersion 16 targetSdkVersion 28 versionCode 1010102 versionName "1.1.1.2" testApplicationId 'com.github.catfriend1.syncthingandroid.test' testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner' playAccountConfig = playAccountConfigs.defaultAccountConfig } signingConfigs { release { storeFile = { def path = System.getenv("SYNCTHING_RELEASE_STORE_FILE") return (path) ? file(path) : null }() storePassword System.getenv("SIGNING_PASSWORD") ?: "" keyAlias System.getenv("SYNCTHING_RELEASE_KEY_ALIAS") ?: "" keyPassword System.getenv("SIGNING_PASSWORD") ?: "" } } buildTypes { release { signingConfig = signingConfigs.release.storeFile ? signingConfigs.release : null } debug { gradle.buildFinished { buildResult -> if (!buildResult.failure) { postBuildScript.execute() } } } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } lintOptions { abortOnError true } } play { jsonFile = file(System.getenv("SYNCTHING_RELEASE_PLAY_ACCOUNT_CONFIG_FILE") ?: 'keys.json') errorOnSizeLimit = false uploadImages = false track = 'beta' } tasks.whenTaskAdded { task -> if (task.name == 'compileDebugSources') { task.dependsOn lint task.mustRunAfter lint } } /** * Some languages are not supported by Google Play, so we ignore them. */ task deleteUnsupportedPlayTranslations(type: Delete) { delete 'src/main/play/nn' delete 'src/main/play/el-EL' delete 'src/main/play/nb' delete 'src/main/play/en/' } task postBuildScript(type: Exec) { executable = 'python' args = ['-u', './postbuild.py'] }