apply plugin: 'com.android.application' def keystorePropertiesFile = rootProject.file("keystore.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { compileSdkVersion 28 defaultConfig { applicationId "eu.faircode.email" minSdkVersion 21 targetSdkVersion 28 versionCode 285 versionName "1.285" archivesBaseName = "FairEmail-v$versionName" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] } } } signingConfigs { release { storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] } } buildTypes { release { debuggable = false minifyEnabled = true useProguard = true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } debug { debuggable = true minifyEnabled = false useProguard = false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions "all" productFlavors { full { dimension "all" buildConfigField "boolean", "PLAY_STORE_RELEASE", "false" buildConfigField "String", "PRO_FEATURES", "\"https://email.faircode.eu/donate/\"" buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/open-source-email/releases/latest\"" buildConfigField "boolean", "BETA_RELEASE", "true" } play_beta { dimension "all" buildConfigField "boolean", "PLAY_STORE_RELEASE", "true" buildConfigField "String", "PRO_FEATURES", "\"https://email.faircode.eu/#pro\"" buildConfigField "String", "GITHUB_LATEST_API", "\"\"" buildConfigField "boolean", "BETA_RELEASE", "true" } play_release { dimension "all" buildConfigField "boolean", "PLAY_STORE_RELEASE", "true" buildConfigField "String", "PRO_FEATURES", "\"https://email.faircode.eu/#pro\"" buildConfigField "String", "GITHUB_LATEST_API", "\"\"" buildConfigField "boolean", "BETA_RELEASE", "false" } } lintOptions { disable 'MissingTranslation' abortOnError false } packagingOptions { pickFirst 'META-INF/LICENSE.txt' // keep lib/armeabi-v7a/libsqlite3x.so // keep lib/arm64-v8a/libsqlite3x.so // keep lib/x86/libsqlite3x.so // keep lib/x86_64/libsqlite3x.so } } repositories { google() jcenter() maven { url "https://repo1.maven.org/maven2/" } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) def appcompat_version = "1.0.2" def recyclerview_version = "1.0.0" def coordinatorlayout_version = "1.0.0" def constraintlayout_version = "1.1.3" def material_version = "1.0.0" def browser_version = "1.0.0" def lifecycle_version = "2.0.0" def room_version = "2.0.0" def paging_version = "2.0.0" def billingclient_version = "1.2" def javamail_version = "1.6.3" def jsoup_version = "1.11.3" def jcharset_version = "2.0" def icu4j_version = "63.1" def dnsjava_version = "2.1.8" def openpgp_version = "12.0" def requery_version = "3.26.0" // https://developer.android.com/topic/libraries/support-library/androidx-rn // https://developer.android.com/jetpack/docs/release-notes // https://mvnrepository.com/artifact/androidx.appcompat/appcompat implementation "androidx.appcompat:appcompat:$appcompat_version" // https://mvnrepository.com/artifact/androidx.recyclerview/recyclerview implementation "androidx.recyclerview:recyclerview:$recyclerview_version" implementation "androidx.recyclerview:recyclerview-selection:$recyclerview_version" // https://mvnrepository.com/artifact/androidx.coordinatorlayout/coordinatorlayout implementation "androidx.coordinatorlayout:coordinatorlayout:$coordinatorlayout_version" // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout implementation "androidx.constraintlayout:constraintlayout:$constraintlayout_version" // https://mvnrepository.com/artifact/com.google.android.material/material implementation "com.google.android.material:material:$material_version" // https://mvnrepository.com/artifact/androidx.browser/browser implementation "androidx.browser:browser:$browser_version" // https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-runtime implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // https://mvnrepository.com/artifact/androidx.room/room-runtime implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" // https://mvnrepository.com/artifact/androidx.paging/paging-runtime implementation "androidx.paging:paging-runtime:$paging_version" // https://developer.android.com/google/play/billing/billing_library_releases_notes implementation "com.android.billingclient:billing:$billingclient_version" // https://javaee.github.io/javamail/ // https://projects.eclipse.org/projects/ee4j.javamail implementation "com.sun.mail:android-mail:$javamail_version" implementation "com.sun.mail:android-activation:$javamail_version" // https://jsoup.org/ implementation "org.jsoup:jsoup:$jsoup_version" // http://www.freeutils.net/source/jcharset/ //implementation "net.freeutils:jcharset:$jcharset_version" // https://mvnrepository.com/artifact/com.ibm.icu/icu4j //implementation "com.ibm.icu:icu4j:$icu4j_version" // http://www.xbill.org/dnsjava/ implementation "dnsjava:dnsjava:$dnsjava_version" // https://github.com/open-keychain/openpgp-api implementation "org.sufficientlysecure:openpgp-api:$openpgp_version" // https://github.com/requery/sqlite-android/ implementation "io.requery:sqlite-android:$requery_version" // git clone https://android.googlesource.com/platform/frameworks/opt/colorpicker implementation project(path: ':colorpicker') }