plugins {
  id 'com.android.application'
  id "kotlin-android"
  id 'kotlin-kapt'
  id 'kotlin-parcelize'
}

android {
  compileSdk 31
  defaultConfig {
    applicationId "com.airbnb.lottie"
    minSdk 16
    targetSdk 30
    versionCode 70
    versionName VERSION_NAME
    multiDexEnabled true
    buildConfigField("String", "BITRISE_GIT_BRANCH", "\"" + System.getenv("BITRISE_GIT_BRANCH") + "\"")
    buildConfigField("String", "GIT_SHA", "\"" + gitSha + "\"")
    buildConfigField("String", "GIT_BRANCH", "\"" + gitBranch + "\"")
    vectorDrawables.useSupportLibrary = true
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  }
  buildFeatures {
    viewBinding 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_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8.toString()
    freeCompilerArgs += ["-Xuse-experimental=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 'androidx.multidex:multidex:2.0.1'

  implementation "androidx.appcompat:appcompat:$appcompatVersion"
  implementation "androidx.recyclerview:recyclerview:1.2.1"
  implementation "androidx.paging:paging-runtime-ktx:3.0.1"
  implementation "androidx.cardview:cardview:1.0.0"
  implementation "androidx.core:core-ktx:$coreVersion"
  implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
  implementation "androidx.browser:browser:1.3.0"
  implementation "com.google.android.material:material:$materialVersion"

  implementation "com.airbnb.android:epoxy:$epoxyVersion"
  kapt "com.airbnb.android:epoxy-processor:$epoxyVersion"
  implementation 'com.airbnb.android:mvrx:1.5.1'

  implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
  implementation 'com.dlazaro66.qrcodereaderview:qrcodereaderview:2.0.2'
  implementation 'com.github.PhilJay:MPAndroidChart:3.1.0'
  implementation 'com.google.code.gson:gson:2.8.8'
  implementation 'com.squareup.okhttp3:okhttp:4.9.1'
  implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
  implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion"
  implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
  implementation 'com.github.bumptech.glide:glide:4.12.0'

  debugImplementation 'androidx.fragment:fragment-testing:1.3.6'

  testImplementation "junit:junit:$junitVersion"
  androidTestImplementation "androidx.test.ext:junit:$extJunitVersion"
  androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
  androidTestImplementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion"
  androidTestImplementation 'androidx.test:core:1.3.0'
  androidTestImplementation 'androidx.test:rules:1.4.0'
  androidTestImplementation "org.mockito:mockito-android:$mockitoVersion"
  androidTestImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0"
}
