apply plugin: 'com.android.application' apply plugin: 'com.getkeepsafe.dexcount' android { compileSdkVersion project.targetSdkVersion buildToolsVersion project.buildToolsVersion defaultConfig { minSdkVersion project.minSdkVersion targetSdkVersion project.targetSdkVersion applicationId "org.purplei2p.lightning" versionName project.versionName versionCode project.versionCode vectorDrawables.useSupportLibrary = true } signingConfigs { r4sas { storeFile file("store.jks") storePassword "storepass" keyAlias "keyalias" keyPassword "keypass" } } buildTypes { debug { minifyEnabled false shrinkResources false proguardFiles 'proguard-project.txt' applicationVariants.all { variant -> renameAPK(variant, defaultConfig, 'debug') } } release { minifyEnabled true shrinkResources true signingConfig signingConfigs.r4sas proguardFiles 'proguard-project.txt' applicationVariants.all { variant -> renameAPK(variant, defaultConfig, 'release') } } } lintOptions { abortOnError true } packagingOptions { exclude '.readme' } } dexcount { includeClasses = false includeFieldCount = false format = "tree" orderByMethodCount = true verbose = false } dependencies { testCompile 'junit:junit:4.12' // support libraries def supportLibVersion = '25.4.0' compile "com.android.support:palette-v7:$supportLibVersion" compile "com.android.support:appcompat-v7:$supportLibVersion" compile "com.android.support:design:$supportLibVersion" compile "com.android.support:recyclerview-v7:$supportLibVersion" compile "com.android.support:support-v4:$supportLibVersion" // dependency injection def daggerVersion = '2.11' compile "com.google.dagger:dagger:$daggerVersion" annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion" provided 'javax.annotation:jsr250-api:1.0' // view binding def butterknifeVersion = '8.6.0' compile "com.jakewharton:butterknife:$butterknifeVersion" annotationProcessor "com.jakewharton:butterknife-compiler:$butterknifeVersion" // permissions compile 'com.anthonycr.grant:permissions:1.1.2' // tor proxy def netcipherVersion = '2.0.0-alpha1' compile "info.guardianproject.netcipher:netcipher:$netcipherVersion" compile "info.guardianproject.netcipher:netcipher-webkit:$netcipherVersion" compile 'com.anthonycr.bonsai:bonsai:1.1.0' compile 'com.anthonycr.progress:animated-progress:1.0' // memory leak analysis def leakCanaryVersion = '1.5.1' debugCompile "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion" // Kotlin } def renameAPK(variant, defaultConfig, buildType) { variant.outputs.each { output -> def formattedDate = new Date().format('yyMMdd') def file = output.packageApplication.outputFile def fileName = defaultConfig.applicationId + "_" + defaultConfig.versionCode + "_" + formattedDate + "_" + buildType + ".apk" output.packageApplication.outputFile = new File(file.parent, fileName) } }