// 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'
  }
}

// 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"
  }
}
