Permalink
Fetching contributors…
Cannot retrieve contributors at this time
240 lines (205 sloc) 7.55 KB
apply from: "../build.gradle"
apply plugin: "com.android.application"
apply plugin: "kotlin-android"
apply plugin: "kotlin-android-extensions"
apply plugin: "io.fabric"
apply plugin: "com.getkeepsafe.dexcount"
apply plugin: "kotlin-kapt"
buildscript {
repositories {
jcenter()
mavenCentral()
maven { url "https://maven.fabric.io/public" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://jitpack.io" }
}
dependencies {
classpath "io.fabric.tools:gradle:1.25.4"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2"
classpath('com.github.ayvazj.gradle.plugins.androlate:androlate:0.1')
}
}
repositories {
jcenter()
mavenCentral()
maven { url "https://maven.fabric.io/public" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
maven { url "http://dl.bintray.com/lukaville/maven" }
}
dexcount {
format = "list"
includeClasses = false
includeFieldCount = true
includeTotalMethodCount = false
orderByMethodCount = true
verbose = false
maxTreeDepth = Integer.MAX_VALUE
teamCityIntegration = false
teamCitySlug = null
runOnEachAssemble = true
maxMethodCount = 64000
}
android {
compileSdkVersion 28
buildToolsVersion '28.0.2'
final File versionFile = file("file:version.properties")
final Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionFile))
def final code = versionProps.getProperty("versionCode").toInteger()
def final name = versionProps.getProperty("versionName").toString()
def final appIdBase = "com.github.premnirmal.tickerwidget"
defaultConfig {
applicationId appIdBase
minSdkVersion 15
targetSdkVersion 28
testInstrumentationRunner "com.github.premnirmal.ticker.mock.MockTestRunner"
versionCode = code
versionName = name
multiDexEnabled true
}
sourceSets {
main.java.srcDirs += "src/main/kotlin"
String testDir = "src/test/kotlin"
test {
resources.srcDirs += ['src/test/resources']
java.srcDir testDir
}
}
dexOptions {
javaMaxHeapSize "2048M"
}
signingConfigs {
release {
storeFile file("file:keystore.jks")
final File propsFile = file("file:keystore.properties")
if (propsFile.exists()) {
final Properties props = new Properties()
props.load(new FileInputStream(propsFile))
storePassword props.getProperty("key.store.password")
keyPassword props.getProperty("key.alias.password")
keyAlias props.getProperty("key.alias.alias")
}
}
}
flavorDimensions "mobile"
productFlavors {
dev {
dimension "mobile"
applicationId = appIdBase + ".dev"
}
prod {
dimension "mobile"
applicationId = appIdBase
}
purefloss {
dimension "mobile"
// no analytics, but still using the production packageName
applicationId = appIdBase
}
}
buildTypes {
release {
debuggable false
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
debug {
debuggable true
versionNameSuffix "-DEBUG"
ext.enableCrashlytics = false
}
}
testOptions {
unitTests.returnDefaultValues = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
packagingOptions {
exclude "META-INF/DEPENDENCIES"
exclude "META-INF/NOTICE"
exclude "META-INF/LICENSE"
exclude "META-INF/LICENSE.txt"
exclude "META-INF/NOTICE.txt"
}
}
kapt {
useBuildCache = true
}
ext {
SUPPORT_LIBRARY_VERSION = "28.0.0"
DAGGER_VERSION = "2.7"
DEXMAKER_VERSION = "1.4"
MOCKITO_VERSION = "2.9.0"
JUNIT_VERSION = "4.12"
RUNNER_VERSION = "1.0.2-alpha1"
RETROFIT_VERSION = "2.2.0"
OKHTTP_VERSION = "3.5.0"
RXJAVA_VERSION = "2.1.0"
ROBOLECTRIC_VERSION = "3.8"
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "com.android.support:multidex:1.0.3"
implementation "com.android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
implementation "com.android.support:support-v4:$SUPPORT_LIBRARY_VERSION"
implementation "com.android.support:design:$SUPPORT_LIBRARY_VERSION"
implementation "javax.inject:javax.inject:1"
implementation "javax.annotation:javax.annotation-api:1.2"
implementation "com.google.dagger:dagger:$DAGGER_VERSION"
kapt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
implementation "com.squareup.okhttp3:okhttp:$OKHTTP_VERSION"
implementation "com.squareup.okhttp3:logging-interceptor:$OKHTTP_VERSION"
implementation "com.squareup.retrofit2:retrofit:$RETROFIT_VERSION"
implementation "com.squareup.retrofit2:converter-gson:$RETROFIT_VERSION"
implementation "com.squareup.retrofit2:adapter-rxjava2:$RETROFIT_VERSION"
implementation "io.reactivex.rxjava2:rxandroid:2.0.1"
implementation "io.reactivex.rxjava2:rxjava:$RXJAVA_VERSION"
implementation "com.trello.rxlifecycle2:rxlifecycle:2.0.1"
implementation "com.trello.rxlifecycle2:rxlifecycle-android:2.0.1"
implementation "com.trello.rxlifecycle2:rxlifecycle-kotlin:2.0.1"
implementation "com.jakewharton.threetenabp:threetenabp:1.1.0"
implementation "com.nbsp:library:1.6"
implementation "uk.co.chrisjenx:calligraphy:2.2.0"
implementation "com.jakewharton.timber:timber:4.7.1"
implementation "saschpe.android:customtabs:1.1.1"
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'io.paperdb:paperdb:2.6'
prodImplementation("com.crashlytics.sdk.android:crashlytics:2.9.4@aar") {
transitive = true
}
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
testImplementation "junit:junit:$JUNIT_VERSION"
testImplementation "org.assertj:assertj-core:3.8.0"
testImplementation "org.robolectric:robolectric:$ROBOLECTRIC_VERSION"
testImplementation "org.robolectric:shadows-multidex:$ROBOLECTRIC_VERSION"
testImplementation "com.android.support.test:runner:$RUNNER_VERSION"
testImplementation "com.android.support.test:rules:$RUNNER_VERSION"
testImplementation "com.android.support:support-annotations:$SUPPORT_LIBRARY_VERSION"
testImplementation("com.android.support.test:rules:0.5") {
exclude group: "com.android.support", module: "support-annotations"
}
testImplementation("com.android.support.test:runner:$RUNNER_VERSION") {
exclude group: "com.android.support", module: "support-annotations"
}
testImplementation "org.threeten:threetenbp:1.3.7"
testImplementation "com.android.tools:testutils:26.2.0"
testImplementation "org.mockito:mockito-core:$MOCKITO_VERSION"
androidTestImplementation "com.crittercism.dexmaker:dexmaker:$DEXMAKER_VERSION"
androidTestImplementation "com.crittercism.dexmaker:dexmaker-dx:$DEXMAKER_VERSION"
androidTestImplementation "com.crittercism.dexmaker:dexmaker-mockito:$DEXMAKER_VERSION"
kaptTest "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
kaptAndroidTest "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
// Need this to fix a class not found error in tests (https://github.com/robolectric/robolectric/issues/1932)
testImplementation "org.khronos:opengl-api:gl1.1-android-2.1_r1"
}
configurations.all {
resolutionStrategy.force 'org.objenesis:objenesis:2.5.1'
}