/* * Copyright (c) Ricki Hirner (bitfire web engineering). * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { applicationId "com.etesync.syncadapter" minSdkVersion 21 targetSdkVersion 33 versionCode 20401 versionName "2.4.1" buildConfigField "boolean", "customCerts", "true" } buildTypes { debug { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' /* * To override the server's url (for example when developing), * create file gradle.properties in ~/.gradle/ with this content: * * appDebugRemoteUrl="http://localserver:8080/" */ if (project.hasProperty('appDebugRemoteUrl')) { buildConfigField 'String', 'DEBUG_REMOTE_URL', appDebugRemoteUrl } else { buildConfigField 'String', 'DEBUG_REMOTE_URL', 'null' } } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' buildConfigField 'String', 'DEBUG_REMOTE_URL', 'null' // Configure Kotlin compiler optimisations for releases kotlinOptions { freeCompilerArgs = [ '-Xno-param-assertions', '-Xno-call-assertions', '-Xno-receiver-assertions' ] } } } packagingOptions { resources { excludes += ['LICENSE', 'META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'] } } testOptions { unitTests.returnDefaultValues = true } defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } /* * To sign release build, create file gradle.properties in ~/.gradle/ with this content: * * signingStoreLocation=/home/key.store * signingKeyAlias=alias * * and set the KSTOREPWD env var to the store and key passwords (should be the same) */ if (project.hasProperty('signingStoreLocation') && project.hasProperty('signingKeyAlias')) { println "Found sign properties in gradle.properties! Signing build…" signingConfigs { release { storeFile file(signingStoreLocation) storePassword System.getenv("KSTOREPWD") keyAlias signingKeyAlias keyPassword System.getenv("KSTOREPWD") } } buildTypes.release.signingConfig = signingConfigs.release } else { buildTypes.release.signingConfig = null } compileOptions { // enable because ical4android requires desugaring coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } buildFeatures { dataBinding = true viewBinding = true } lint { disable 'GoogleAppIndexingWarning', 'GradleDependency', 'GradleDynamicVersion', 'IconColors', 'IconLauncherShape', 'IconMissingDensityFolder', 'ImpliedQuantity', 'MissingQuantity', 'MissingTranslation', 'ExtraTranslation', 'Recycle', 'RtlEnabled', 'RtlHardcoded', 'Typos', 'RestrictedApi' } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' implementation "org.jetbrains.anko:anko-commons:0.10.4" implementation "com.etesync:journalmanager:1.1.1" def etebaseVersion = '2.3.2' implementation "com.etebase:client:$etebaseVersion" def acraVersion = '5.7.0' implementation "ch.acra:acra-http:$acraVersion" implementation "ch.acra:acra-dialog:$acraVersion" def supportVersion = '1.0.0' implementation "androidx.legacy:legacy-support-core-ui:$supportVersion" implementation "androidx.core:core:$supportVersion" implementation "androidx.appcompat:appcompat:1.1.0" implementation "androidx.cardview:cardview:1.0.0" // KTX extensions implementation "androidx.core:core-ktx:1.3.1" implementation "androidx.fragment:fragment-ktx:1.2.5" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0" implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.0" implementation 'com.google.android.material:material:1.2.0-beta01' implementation "androidx.legacy:legacy-preference-v14:$supportVersion" implementation 'com.github.yukuku:ambilwarna:2.0.1' implementation ('com.github.worker8:tourguide:1.0.17-SNAPSHOT@aar') { transitive = true } def requeryVersion = '1.6.1' implementation "io.requery:requery:$requeryVersion" implementation "io.requery:requery-android:$requeryVersion" implementation "io.requery:requery-kotlin:$requeryVersion" kapt "io.requery:requery-processor:$requeryVersion" implementation 'com.google.code.findbugs:jsr305:3.0.2' def okhttp3Version = "4.8.1" implementation "com.squareup.okhttp3:okhttp:$okhttp3Version" implementation "com.squareup.okhttp3:logging-interceptor:$okhttp3Version" implementation 'com.google.code.gson:gson:1.7.2' implementation 'org.apache.commons:commons-collections4:4.1' implementation 'org.apache.commons:commons-lang3:3.8.1' implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2' implementation project(':cert4android') implementation project(':ical4android') implementation project(':vcard4android') // for tests androidTestImplementation('androidx.test:runner:1.1.0-alpha4') { exclude group: 'com.android.support', module: 'support-annotations' } androidTestImplementation('androidx.test:rules:1.1.0-alpha4') { exclude group: 'com.android.support', module: 'support-annotations' } androidTestImplementation 'junit:junit:4.12' androidTestImplementation "com.squareup.okhttp3:mockwebserver:$okhttp3Version" testImplementation 'junit:junit:4.12' testImplementation "com.squareup.okhttp3:mockwebserver:$okhttp3Version" }