apply plugin: 'com.android.application' apply plugin: 'checkstyle' apply plugin: 'io.fabric' repositories { jcenter() google() } android { lintOptions { lintConfig file("lint.xml") textOutput 'stdout' textReport true } compileSdkVersion 28 defaultConfig { testApplicationId "org.tasks.test" applicationId "org.tasks" versionCode 565 versionName "6.5.3" targetSdkVersion 28 minSdkVersion 16 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] } } } signingConfigs { release } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildTypes { debug { multiDexEnabled true testCoverageEnabled true } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.pro' signingConfig signingConfigs.release } } flavorDimensions 'store' productFlavors { generic { dimension 'store' proguardFile 'generic.pro' } googleplay { dimension 'store' } amazon { dimension 'store' } } if (project.hasProperty('keyAlias') && project.hasProperty('storeFile') && project.hasProperty('storePassword') && project.hasProperty('keyPassword')) { android.signingConfigs.release.keyAlias = keyAlias android.signingConfigs.release.storeFile = file(storeFile) android.signingConfigs.release.storePassword = storePassword android.signingConfigs.release.keyPassword = keyPassword } else { buildTypes.release.signingConfig = null } } task checkstyle(type: Checkstyle) { source fileTree('src') include '**/*.java' exclude '**/gen/**' classpath = files() showViolations true reports { xml.enabled = true html.enabled = true html.destination = project.file("$buildDir/reports/checkstyle/checkstyle.html") } } checkstyle { configFile project.file('google_checks.xml') toolVersion = '8.16' } configurations { all*.exclude group: 'com.google.guava', module: 'guava-jdk5' all*.exclude group: 'org.apache.httpcomponents', module: 'httpclient' } final DAGGER_VERSION = '2.16' final BUTTERKNIFE_VERSION = '10.0.0' final STETHO_VERSION = '1.5.0' final WORK_VERSION = '1.0.0-beta05' final LEAKCANARY_VERSION = '1.6.3' final ROOM_VERSION = '2.1.0-alpha04' dependencies { implementation project(":dav4android") implementation project(":ical4android") annotationProcessor "com.google.dagger:dagger-compiler:${DAGGER_VERSION}" implementation "com.google.dagger:dagger:${DAGGER_VERSION}" implementation "androidx.room:room-rxjava2:${ROOM_VERSION}" annotationProcessor "androidx.room:room-compiler:${ROOM_VERSION}" implementation "androidx.lifecycle:lifecycle-extensions:2.0.0" implementation "io.reactivex.rxjava2:rxandroid:2.1.0" implementation "androidx.paging:paging-runtime:2.1.0" annotationProcessor "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}" implementation "com.jakewharton:butterknife:${BUTTERKNIFE_VERSION}" debugImplementation("com.facebook.stetho:stetho:${STETHO_VERSION}") { exclude group: 'com.google.code.findbugs', module: 'jsr305' } debugImplementation "com.facebook.stetho:stetho-timber:${STETHO_VERSION}@aar" //noinspection GradleDependency debugImplementation "com.squareup.leakcanary:leakcanary-android:${LEAKCANARY_VERSION}" debugImplementation "com.squareup.leakcanary:leakcanary-support-fragment:${LEAKCANARY_VERSION}" debugImplementation 'androidx.multidex:multidex:2.0.1' implementation 'me.saket:better-link-movement-method:2.2.0' implementation 'com.squareup.okhttp3:okhttp:3.11.0' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.github.rey5137:material:1.2.5' implementation 'com.nononsenseapps:filepicker:4.2.1' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.annotation:annotation:1.0.1' implementation 'androidx.legacy:legacy-support-v13:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'com.jakewharton.threetenabp:threetenabp:1.1.0' //noinspection GradleDependency implementation 'com.google.guava:guava:20.0' implementation 'com.jakewharton:process-phoenix:2.0.0' implementation 'com.google.android.apps.dashclock:dashclock-api:2.0.0' implementation 'com.twofortyfouram:android-plugin-api-for-locale:1.0.2' implementation('com.rubiconproject.oss:jchronic:0.2.6') { transitive = false } implementation('org.scala-saddle:google-rfc-2445:20110304') { transitive = false } implementation('com.wdullaer:materialdatetimepicker:4.0.1') implementation "me.leolin:ShortcutBadger:1.1.22@aar" implementation 'com.google.apis:google-api-services-tasks:v1-rev55-1.25.0' implementation 'com.google.apis:google-api-services-drive:v3-rev136-1.25.0' implementation 'com.google.api-client:google-api-client-android:1.27.0' implementation 'com.android.billingclient:billing:1.2' implementation("android.arch.work:work-runtime:${WORK_VERSION}") { // https://groups.google.com/forum/#!topic/guava-announce/Km82fZG68Sw exclude group: 'com.google.guava', module: 'listenablefuture' } googleplayImplementation 'com.crashlytics.sdk.android:crashlytics:2.9.8' googleplayImplementation "com.google.firebase:firebase-core:16.0.7" googleplayImplementation "com.google.android.gms:play-services-location:16.0.0" googleplayImplementation "com.google.android.gms:play-services-auth:16.0.1" googleplayImplementation "com.google.android.gms:play-services-places:16.0.0" amazonImplementation "com.google.android.gms:play-services-analytics:16.0.7" androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:${DAGGER_VERSION}" androidTestAnnotationProcessor "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}" androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2' androidTestImplementation 'com.natpryce:make-it-easy:4.0.1' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test:rules:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.0' androidTestImplementation 'androidx.annotation:annotation:1.0.1' } apply plugin: 'com.google.gms.google-services'