plugins { id 'com.android.application' id 'com.github.ben-manes.versions' id 'com.github.triplet.play' version '3.7.0' } dependencies { implementation 'eu.chainfire:libsuperuser:1.1.1' implementation 'com.google.android.material:material:1.8.0' implementation 'com.google.code.gson:gson:2.10.1' implementation 'org.mindrot:jbcrypt:0.4' implementation 'com.google.guava:guava:32.1.2-android' implementation 'com.annimon:stream:1.2.2' implementation 'com.android.volley:volley:1.2.1' implementation 'commons-io:commons-io:2.11.0' implementation ('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } implementation 'com.google.zxing:core:3.4.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'com.google.dagger:dagger:2.46.1' annotationProcessor 'com.google.dagger:dagger-compiler:2.46.1' androidTestImplementation 'androidx.test:rules:1.4.0' androidTestImplementation 'androidx.annotation:annotation:1.2.0' } android { // Changes to these values need to be reflected in `../docker/Dockerfile` compileSdkVersion 33 buildToolsVersion '33.0.2' ndkVersion = "${ndkVersionShared}" buildTypes.debug.applicationIdSuffix ".debug" buildFeatures.dataBinding = true defaultConfig { applicationId "com.nutomic.syncthingandroid" minSdkVersion 21 targetSdkVersion 33 versionCode 4372 versionName "1.27.0-rc.2" testApplicationId 'com.nutomic.syncthingandroid.test' testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } 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 { debuggable true jniDebuggable true renderscriptDebuggable true minifyEnabled false } } compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } // Otherwise libsyncthing.so doesn't appear where it should in installs // based on app bundles, and thus nothing works. packagingOptions { jniLibs { useLegacyPackaging = true } } } play { serviceAccountCredentials = file(System.getenv("SYNCTHING_RELEASE_PLAY_ACCOUNT_CONFIG_FILE") ?: 'keys.json') track = 'beta' } /** * Some languages are not supported by Google Play, so we ignore them. */ task deleteUnsupportedPlayTranslations(type: Delete) { delete 'src/main/play/listings/de_DE/' delete 'src/main/play/listings/el-EL/' delete 'src/main/play/listings/en/' delete 'src/main/play/listings/eo/' delete 'src/main/play/listings/eu/' delete 'src/main/play/listings/nb/' delete 'src/main/play/listings/nl_BE/' delete 'src/main/play/listings/nn/' delete 'src/main/play/listings/ta/' }