// See build.gradle for an explanation of what this file is.

apply plugin: 'com.android.library'

android {
  useLibrary 'org.apache.http.legacy'

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }

  defaultConfig {
    consumerProguardFiles 'consumer-proguard-rules.pro'
  }
}

tasks.withType(JavaCompile) {
  options.compilerArgs << "-Xlint:unchecked" << "-Werror"
}

dependencies {
  provided "com.android.support:support-annotations:27.1.1"
}

// Check if the android plugin version supports unit testing.
if (configurations.findByName("testCompile")) {
  dependencies {
    testCompile "junit:junit:4.12"
    testCompile "org.hamcrest:hamcrest-library:1.3"
    testCompile "org.mockito:mockito-core:2.2.29"
    testCompile "org.robolectric:robolectric:3.0"
  }
}
