// 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 {
    implementation "androidx.annotation:annotation:1.0.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.19.0"
      testCompile "org.robolectric:robolectric:3.4.2"
  }
}
