apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' apply plugin: 'io.fabric' apply plugin: 'com.github.triplet.play' apply from: 'jacoco.gradle' apply from: 'sonarqube.gradle' android { compileSdkVersion 28 buildToolsVersion '28.0.3' playAccountConfigs { defaultAccountConfig { serviceAccountEmail = System.getenv("PLAY_SERVICE_ACCOUNT_EMAIL") pk12File = file('key.p12') } } defaultConfig { applicationId "io.github.wulkanowy" testApplicationId "io.github.tests.wulkanowy" minSdkVersion 15 targetSdkVersion 28 versionCode 16 versionName "0.5.2" multiDexEnabled true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true playAccountConfig = playAccountConfigs.defaultAccountConfig manifestPlaceholders = [ fabricApiKey: System.getenv("FABRIC_API_KEY") ?: "null" ] } signingConfigs { release { storeFile file("upload-key.jks") storePassword System.getenv("PLAY_STORE_PASSWORD") keyAlias System.getenv("PLAY_KEY_ALIAS") keyPassword System.getenv("PLAY_KEY_PASSWORD") } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } debug { applicationIdSuffix ".dev" versionNameSuffix "-dev" testCoverageEnabled = true ext.enableCrashlytics = false multiDexKeepProguard file('proguard-multidex-rules.pro') } } } androidExtensions { experimental = true } play { track = 'alpha' uploadImages = true } ext.supportVersion = "28.0.0" dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation('com.github.wulkanowy:api:a5667f8000') { exclude module: "threetenbp" } implementation "com.android.support:support-v4:$supportVersion" implementation "com.android.support:appcompat-v7:$supportVersion" implementation "com.android.support:design:$supportVersion" implementation "com.android.support:cardview-v7:$supportVersion" implementation "com.android.support:preference-v14:$supportVersion" implementation 'com.android.support:multidex:1.0.3' implementation "com.google.android.gms:play-services-oss-licenses:16.0.1" implementation "com.firebase:firebase-jobdispatcher:0.8.5" implementation "com.google.dagger:dagger-android-support:2.17" kapt "com.google.dagger:dagger-compiler:2.17" kapt "com.google.dagger:dagger-android-processor:2.17" implementation "android.arch.persistence.room:runtime:1.1.1" implementation "android.arch.persistence.room:rxjava2:1.1.1" kapt "android.arch.persistence.room:compiler:1.1.1" implementation "eu.davidea:flexible-adapter:5.0.6" implementation "eu.davidea:flexible-adapter-ui:1.0.0-b5" implementation "com.aurelhubert:ahbottomnavigation:2.2.0" implementation 'com.ncapdevi:frag-nav:3.0.0-RC3' implementation 'com.github.pwittchen:reactivenetwork-rx2:2.1.0' implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation "io.reactivex.rxjava2:rxjava:2.2.1" implementation "com.jakewharton.threetenabp:threetenabp:1.1.0" implementation "com.jakewharton.timber:timber:4.7.1" implementation "at.favre.lib:slf4j-timber:1.0.1" implementation("com.crashlytics.sdk.android:crashlytics:2.9.5@aar") { transitive = true } implementation("com.crashlytics.sdk.android:answers:1.4.3@aar") { transitive = true } debugImplementation "com.amitshekhar.android:debug-db:1.0.4" testImplementation "junit:junit:4.12" testImplementation "io.mockk:mockk:1.8.8" testImplementation "org.mockito:mockito-inline:2.21.0" androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation "org.mockito:mockito-android:2.21.0" androidTestImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" }