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

android {
  compileSdk 31
  defaultConfig {
    applicationId "com.airbnb.lottie.sample.compose"
    minSdk 21
    targetSdk 30
    versionCode 1
    versionName VERSION_NAME
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  }
  buildTypes {
    release {
      minifyEnabled false
      signingConfig signingConfigs.debug
      debuggable false
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8.toString()
    freeCompilerArgs += [
        "-Xallow-jvm-ir-dependencies",
        "-Xskip-prerelease-check",
        "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi",
        "-Xuse-experimental=androidx.compose.animation.ExperimentalAnimationApi",
        "-Xopt-in=androidx.compose.material.ExperimentalMaterialApi",
        "-Xopt-in=com.google.accompanist.pager.ExperimentalPagerApi",
        "-Xopt-in=kotlin.RequiresOptIn",
    ]
  }
  buildFeatures {
    compose true
  }
  composeOptions {
    kotlinCompilerExtensionVersion composeVersion
  }
  packagingOptions {
    exclude 'META-INF/AL2.0'
    exclude 'META-INF/LGPL2.1'
  }
}

kapt {
  correctErrorTypes = true
}

dependencies {
  implementation project(':lottie-compose')
  implementation "androidx.core:core-ktx:$coreVersion"
  implementation "androidx.activity:activity-compose:$activityVersion"
  implementation 'androidx.appcompat:appcompat:1.4.0-beta01'
  implementation "com.google.android.material:material:$materialVersion"
  implementation "androidx.compose.ui:ui:$composeVersion"
  implementation "androidx.compose.material:material:$composeVersion"
  implementation "androidx.compose.material:material-icons-extended:$composeVersion"
  implementation "androidx.compose.ui:ui-tooling:$composeVersion"
  implementation "androidx.navigation:navigation-compose:2.4.0-alpha10"
  implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
  // Need this to side load a Baseline Profile when Benchmarking
  implementation "androidx.profileinstaller:profileinstaller:$startupVersion"

  implementation "androidx.navigation:navigation-ui-ktx:2.3.5"

  implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"

  implementation "com.google.dagger:dagger:$daggerVersion"
  kapt "com.google.dagger:dagger-compiler:$daggerVersion"

  implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
  implementation "com.squareup.retrofit2:converter-moshi:$retrofitVersion"
  implementation "com.google.accompanist:accompanist-coil:0.15.0"
  implementation "com.google.accompanist:accompanist-pager-indicators:0.18.0"
  implementation 'com.airbnb.android:mavericks:2.3.0'
  implementation 'com.airbnb.android:mavericks-compose:2.1.0-alpha02'

  debugImplementation "androidx.compose.ui:ui-test-manifest:$composeVersion"

  androidTestImplementation "androidx.compose.ui:ui-test-junit4:$composeVersion"
}
