apply plugin: 'com.android.application'
apply plugin: 'com.facebook.testing.screenshot'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
  compileSdkVersion 26
  buildToolsVersion "26.0.1"
  defaultConfig {
    applicationId "com.airbnb.lottie"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 19
    versionName "2.2.1"
    testInstrumentationRunner "com.airbnb.lottie.TestRunner"
    vectorDrawables.useSupportLibrary = true
  }
  buildTypes {
    release {
      minifyEnabled false
    }
  }
  lintOptions {
    ignore 'InvalidPackage'
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }
  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
  }
}

dependencies {
  compile project(':lottie')
  compile "com.android.support:appcompat-v7:$supportLibVersion"
  compile "com.android.support:recyclerview-v7:$supportLibVersion"
  compile "com.android.support:design:$supportLibVersion"
  compile 'com.jakewharton:butterknife:8.5.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
  compile 'com.squareup.okhttp3:okhttp:3.7.0'
  compile 'com.matthew-tamlin:sliding-intro-screen:3.2.0'
  compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:2.0.2'
  compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'

  debugCompile 'com.github.brianPlummer:tinydancer:0.0.9'

  testCompile 'junit:junit:4.12'

  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
    exclude group: 'org.hamcrest', module: 'hamcrest-integration'
  })
  androidTestCompile('com.android.support.test:runner:0.5', {
    exclude group: 'com.android.support', module: 'support-annotations'
  })
  androidTestCompile('com.android.support.test:rules:0.5', {
    exclude group: 'com.android.support', module: 'support-annotations'
  })
  compile 'com.android.support.constraint:constraint-layout:1.0.2'
  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
}
repositories {
  mavenCentral()
}
