import kau.Dependencies 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.Versions.targetSdk androidGitVersion { codeFormat = 'MMNNPPXX' format = '%tag%%.count%%-commit%' } defaultConfig { applicationId "ca.allanwang.kau.sample" minSdkVersion kau.Versions.minSdk targetSdkVersion kau.Versions.targetSdk versionName androidGitVersion.name() versionCode androidGitVersion.code() multiDexEnabled true testInstrumentationRunner "ca.allanwang.kau.sample.SampleTestRunner" } buildFeatures { viewBinding = true } 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 { 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' pickFirst 'META-INF/library-core_release.kotlin_module' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() } 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(':fastadapter') implementation project(':fastadapter-viewbinding') implementation project(':colorpicker') implementation project(':core') implementation project(':core-ui') implementation project(':kpref-activity') implementation project(':searchview') implementation project(':mediapicker') implementation Dependencies.materialDialog("input") implementation Dependencies.koin testImplementation Dependencies.kotlinTest testImplementation Dependencies.junit testImplementation Dependencies.koinTest androidTestImplementation Dependencies.kotlinTest androidTestImplementation Dependencies.espresso androidTestImplementation Dependencies.espresso("intents") androidTestImplementation Dependencies.espresso("contrib") androidTestImplementation Dependencies.testRules androidTestImplementation Dependencies.testRunner androidTestImplementation Dependencies.koinTest }