import groovy.json.JsonSlurper
import com.android.Version

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

def currentDirectory = buildFile.parentFile.toPath()
def packageJson = new JsonSlurper().parse(currentDirectory.resolve('../package.json'))
def airbridgeSDK = new JsonSlurper().parse(currentDirectory.resolve('../airbridge_sdk.json'))

buildscript {
    ext.safeExtGet = { prop, fallback ->
        rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
    }

     ext.getKotlinVersion = {
        if (ext.has("kotlinVersion")) {
            ext.kotlinVersion()
        } else {
            ext.safeExtGet("kotlinVersion", "1.5.31")
        }
    }
}

android {
    def agpVersion = Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger()
    if (agpVersion >= 7) {
        namespace "co.ab180.airbridge.reactnative"
    }

    compileSdkVersion safeExtGet("compileSdkVersion", 34)

    defaultConfig {
        minSdkVersion safeExtGet("minSdkVersion", 16)
        targetSdkVersion safeExtGet("targetSdkVersion", 34)
        versionCode 1
        versionName "${packageJson['version']}"

        buildConfigField("String", "AIRBRIDGE_REACT_NATIVE_NAME", "\"${packageJson['name']}\"")
        buildConfigField("String", "AIRBRIDGE_REACT_NATIVE_VERSION", "\"${packageJson['version']}\"")
    }
}

rootProject.allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://sdk-download.airbridge.io/maven' }
    }
}

dependencies {
    implementation 'com.facebook.react:react-native:+'
    implementation "io.airbridge:sdk-android:${airbridgeSDK['android_version']}"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}"
}

apply from: 'copy-airbridge-json.gradle'
