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-signed1"
  }
  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") }
  }
}
