plugins {
  id 'com.android.application'
  id "kotlin-android"
  id 'kotlin-parcelize'
  id 'com.google.devtools.ksp'
}

android {
  namespace 'com.airbnb.lottie.samples'
  compileSdk 33
  defaultConfig {
    applicationId "com.airbnb.lottie"
    minSdk 16
    targetSdk 33
    versionCode 70
    versionName VERSION_NAME
    multiDexEnabled true
    buildConfigField("String", "GIT_SHA", "\"" + gitSha + "\"")
    buildConfigField("String", "GIT_BRANCH", "\"" + gitBranch + "\"")
    vectorDrawables.useSupportLibrary = true
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  }
  buildFeatures {
    viewBinding true
    buildConfig true
  }
  buildTypes {
    debug {
      multiDexKeepProguard file('proguard-multidex-rules.pro')
    }
    release {
      multiDexKeepProguard file('proguard-multidex-rules.pro')
      minifyEnabled false
    }
  }
  lintOptions {
    ignore 'InvalidPackage'
    ignore 'VectorDrawableCompat'
    textReport true
    textOutput 'stdout'
    baseline file("lint-baseline.xml")
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_17
    targetCompatibility JavaVersion.VERSION_17
  }
  kotlinOptions {
    jvmTarget = JavaVersion.VERSION_17.toString()
    freeCompilerArgs += ["-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi"]
  }
  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
  }
  packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
  }
}

dependencies {
  implementation project(':lottie')
  implementation libs.androidx.multidex

  implementation libs.androidx.appcompat
  implementation libs.androidx.recyclerview
  implementation libs.androidx.paging.runtime.ktx
  implementation libs.androidx.cardview
  implementation libs.androidx.core.ktx
  implementation libs.androidx.constraintlayout
  implementation libs.androidx.browser
  implementation libs.google.material

  implementation libs.epoxy
  ksp libs.epoxy.processor
  implementation libs.mvrx

  implementation libs.kotlinx.coroutines.android
  implementation libs.qrcodereaderview
  implementation libs.mpandroidchart
  implementation libs.gson
  implementation libs.okhttp
  implementation libs.retrofit
  implementation libs.retrofit.rxjava
  implementation libs.retrofit.gson
  implementation libs.glide

  debugImplementation libs.androidx.fragment.testing

  testImplementation libs.junit4
  androidTestImplementation libs.androidx.test.junit
  androidTestImplementation libs.androidx.test.espresso
  androidTestImplementation libs.androidx.test.espresso.idling
  androidTestImplementation libs.androidx.test.core
  androidTestImplementation libs.androidx.test.rules
  androidTestImplementation libs.mockito.android
  androidTestImplementation libs.mockito.kotlin
}
