import groovy.json.JsonSlurper

apply plugin: 'com.android.library'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'com.facebook.react'

def packageJson = new JsonSlurper().parseText(file("../package.json").text)

def getExtOrDefault(name) {
  return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['Authsignal_' + name]
}

def getExtOrIntegerDefault(name) {
  return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['Authsignal_' + name]).toInteger()
}

android {
  namespace "com.authsignal.react"

  sourceSets {
    main {
      manifest.srcFile "src/main/AndroidManifest.xml"
    }
  }

  compileSdkVersion getExtOrIntegerDefault('compileSdkVersion')

  defaultConfig {
    minSdkVersion getExtOrIntegerDefault('minSdkVersion')
    targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
    buildConfigField "String", "VERSION_NAME", "\"${packageJson.version}\""
  }

  buildTypes {
    release {
      minifyEnabled false
    }
  }

  lint {
    disable 'GradleCompatible'
  }

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_17
    targetCompatibility JavaVersion.VERSION_17
  }

  kotlinOptions {
    jvmTarget = '17'
  }

  buildFeatures {
    buildConfig true
  }
}

repositories {
  mavenCentral()
  google()
}

dependencies {
  //noinspection GradleDynamicVersion
  implementation "com.facebook.react:react-native:+"

  implementation "androidx.browser:browser:1.2.0"

  implementation("com.authsignal:authsignal-android:4.1.0")

  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
}
