apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'com.github.triplet.play' play { serviceAccountCredentials = file('../files/gplay-keys.json') track = 'beta' } android { compileSdkVersion kau.targetSdk buildToolsVersion kau.buildTools androidGitVersion { codeFormat = 'MMNNPPXX' format = '%tag%%.count%%-commit%' } defaultConfig { applicationId "ca.allanwang.kau.sample" minSdkVersion kau.minSdk targetSdkVersion kau.targetSdk versionName androidGitVersion.name() versionCode androidGitVersion.code() multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } def releaseSigning = file("../files/kau.properties") def hasSigning = releaseSigning.exists() signingConfigs { if (hasSigning) { def releaseProps = new Properties() releaseSigning.withInputStream { releaseProps.load(it) } release { storeFile file("../files/kau.keystore") storePassword releaseProps.getProperty('storePassword') keyAlias releaseProps.getProperty('keyAlias') keyPassword releaseProps.getProperty('keyPassword') } } debug { storeFile file("../files/debug.keystore") storePassword "debugKey" keyAlias "debugKey" keyPassword "debugKey" } } buildTypes { debug { minifyEnabled false shrinkResources false applicationIdSuffix ".debug" versionNameSuffix "-debug" signingConfig signingConfigs.debug resValue "string", "app_name", "KAU Debug" } release { minifyEnabled true if (hasSigning) signingConfig signingConfigs.release resValue "string", "app_name", "KAU" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { abortOnError false checkReleaseBuilds false } packagingOptions { pickFirst 'META-INF/core_release.kotlin_module' pickFirst 'META-INF/library_release.kotlin_module' } sourceSets { main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin' androidTest.java.srcDirs += 'src/androidTest/kotlin' main.res.srcDirs += 'src/main/res-public' } testOptions.unitTests { // Don't throw runtime exceptions for android calls that are not mocked returnDefaultValues = true // Always show the result of every unit test, even if it passes. all { testLogging { events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' } } } // See https://github.com/facebook/flipper/issues/146 configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == "com.android.support") { if (!requested.name.startsWith("multidex")) { details.useVersion "26.+" } } } } } dependencies { implementation project(':about') implementation project(':adapter') implementation project(':colorpicker') implementation project(':core') implementation project(':core-ui') implementation project(':kpref-activity') implementation project(':searchview') implementation project(':mediapicker') testImplementation kauDependency.kotlinTest testImplementation kauDependency.junit androidTestImplementation kauDependency.kotlinTest androidTestImplementation kauDependency.espresso androidTestImplementation "androidx.test.espresso:espresso-intents:${kau.espresso}" androidTestImplementation "androidx.test.espresso:espresso-contrib:${kau.espresso}" androidTestImplementation kauDependency.testRules androidTestImplementation kauDependency.testRunner }