apply from: 'gradle-maven-push.gradle'
apply plugin: 'com.android.library'

android {
  compileSdkVersion 27
  resourcePrefix 'lottie_'

  defaultConfig {
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 100
    versionName "2.6.0"
  }
  lintOptions {
    abortOnError true
    textReport true
    textOutput 'stdout'
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }
  testOptions {
    unitTests {
      includeAndroidResources = true
    }
  }
}

dependencies {
  implementation "com.android.support:appcompat-v7:$supportLibVersion"
  testImplementation "org.mockito:mockito-core:2.15.0"
  testImplementation 'junit:junit:4.12'
  testImplementation "org.robolectric:robolectric:3.5.1"
}

task javadoc(type: Javadoc) {
  source = android.sourceSets.main.java.srcDirs
  configurations.implementation.setCanBeResolved(true)
  classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.implementation
  failOnError false
}

gradle.taskGraph.whenReady { taskGraph ->
  if (taskGraph.allTasks.any { it instanceof Sign }) {
    allprojects { ext."signing.keyId" = System.getenv("GRADLE_SIGNING_KEY_ID") }
    allprojects { ext."signing.secretKeyRingFile" = "../secring.gpg" }
    allprojects { ext."signing.password" = System.getenv("GRADLE_SIGNING_PASSWORD") }
  }
}
