apply plugin: 'com.android.application' android { compileSdkVersion 27 buildToolsVersion '27.0.3' defaultConfig { applicationId "com.kunzisoft.keepass" minSdkVersion 14 targetSdkVersion 27 versionCode = 8 versionName = "2.5.0.0beta8" multiDexEnabled true testApplicationId = "com.kunzisoft.keepass.tests" testInstrumentationRunner = "android.test.InstrumentationTestRunner" ndk { abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'mips64' } buildConfigField "String[]", "ICON_PACKS", "{\"classic\",\"material\"}" } externalNativeBuild { cmake { path "src/main/jni/CMakeLists.txt" } } buildTypes { release { minifyEnabled = false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } dexOptions { } flavorDimensions "tier" productFlavors { libre { applicationIdSuffix = ".libre" versionNameSuffix "-libre" buildConfigField "boolean", "FULL_VERSION", "true" buildConfigField "boolean", "CLOSED_STORE", "false" buildConfigField "String[]", "STYLES_DISABLED", "{\"KeepassDXStyle_Dark\",\"KeepassDXStyle_Purple\"}" buildConfigField "String[]", "ICON_PACKS_DISABLED", "{}" } pro { applicationIdSuffix = ".pro" versionNameSuffix "-pro" buildConfigField "boolean", "FULL_VERSION", "true" buildConfigField "boolean", "CLOSED_STORE", "true" buildConfigField "String[]", "STYLES_DISABLED", "{}" buildConfigField "String[]", "ICON_PACKS_DISABLED", "{}" } free { applicationIdSuffix = ".free" versionNameSuffix "-free" buildConfigField "boolean", "FULL_VERSION", "false" buildConfigField "boolean", "CLOSED_STORE", "true" buildConfigField "String[]", "STYLES_DISABLED", "{\"KeepassDXStyle_Dark\",\"KeepassDXStyle_Blue\",\"KeepassDXStyle_Purple\"}" buildConfigField "String[]", "ICON_PACKS_DISABLED", "{\"material\"}" } } sourceSets { libre.res.srcDir 'src/libre/res' pro.res.srcDir 'src/pro/res' free.res.srcDir 'src/free/res' } compileOptions { targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8 } } def supportVersion = "27.1.1" def spongycastleVersion = "1.58.0.0" def permissionDispatcherVersion = "3.1.0" dependencies { implementation "com.android.support:appcompat-v7:$supportVersion" implementation "com.android.support:design:$supportVersion" implementation "com.android.support:preference-v7:$supportVersion" implementation "com.android.support:preference-v14:$supportVersion" implementation "com.android.support:cardview-v7:$supportVersion" implementation "com.madgag.spongycastle:core:$spongycastleVersion" implementation "com.madgag.spongycastle:prov:$spongycastleVersion" // Expandable view implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2' // Time implementation 'joda-time:joda-time:2.9.9' implementation 'org.sufficientlysecure:html-textview:3.5' implementation 'com.nononsenseapps:filepicker:4.1.0' implementation 'com.getkeepsafe.taptargetview:taptargetview:1.11.0' // Permissions implementation("com.github.hotchemi:permissionsdispatcher:$permissionDispatcherVersion") { // if you don't use android.app.Fragment you can exclude support for them exclude module: "support-v13" } annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:$permissionDispatcherVersion" // Apache Commons Collections implementation 'commons-collections:commons-collections:3.2.1' // Base64 implementation 'biz.source_code:base64coder:2010-12-19' implementation 'com.google.code.gson:gson:2.8.1' implementation 'com.google.guava:guava:23.0-android' // Icon pack, classic for all, material for libre and pro implementation project(path: ':icon-pack-classic') implementation project(path: ':icon-pack-material') }