import static de.fayard.refreshVersions.core.Versions.versionFor

plugins {
  id 'com.android.application'
  id "org.jetbrains.kotlin.android"
}

android {
  namespace 'com.airbnb.lottie.snapshots'
  compileSdk 34
  defaultConfig {
    applicationId "com.airbnb.lottie.snapshots"
    minSdk 21
    targetSdk 34
    versionCode 1
    versionName VERSION_NAME
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    buildConfigField("String", "GIT_BRANCH", "\"" + System.getenv("GITHUB_REF_NAME") + "\"")
    buildConfigField("String", "GIT_SHA", "\"" + System.getenv("GITHUB_SHA") + "\"")
  }

  buildTypes {
    debug {
      buildConfigField("String", "S3AccessKey", "\"" + System.getenv("LOTTIE_S3_API_KEY") + "\"")
      buildConfigField("String", "S3SecretKey", "\"" + System.getenv("LOTTIE_S3_SECRET_KEY") + "\"")
      buildConfigField("String", "HappoApiKey", "\"" + System.getenv("LOTTIE_HAPPO_API_KEY") + "\"")
      buildConfigField("String", "HappoSecretKey", "\"" + System.getenv("LOTTIE_HAPPO_SECRET_KEY") + "\"")
    }
    release {
      minifyEnabled false
    }
  }

  kotlinOptions {
    freeCompilerArgs += [
        "-Xskip-prerelease-check",
        "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
        "-opt-in=kotlin.RequiresOptIn",
    ]
  }
  buildFeatures {
    compose true
    viewBinding true
    buildConfig true
  }

  composeOptions {
    kotlinCompilerExtensionVersion = versionFor(project, AndroidX.compose.compiler)
  }
}

dependencies {
  implementation project(':lottie-compose')
  implementation libs.androidx.appcompat
  implementation libs.androidx.core.ktx
  implementation libs.androidx.activity.compose
  implementation platform(libs.compose.bom)
  implementation libs.compose.ui
  implementation libs.compose.ui.tooling
  implementation libs.compose.material

  implementation libs.okhttp
  implementation libs.okhttp.tls

  androidTestImplementation libs.aws.android.sdk.s3
  androidTestImplementation(libs.aws.android.sdk.mobile.client) { transitive = true }
  androidTestImplementation(libs.aws.android.sdk.auth.userpools) { transitive = true }

  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.jjwt
  androidTestImplementation libs.mockito.android
  androidTestImplementation libs.mockito.kotlin
}
