import com.android.Version

buildscript {
    ext {
        gradle_version = '8.3.2'
        face_liveness_version = '5.2.0'
        constraint_layout_version = '1.1.3'
    }

    def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["RNCafFaceLiveness_kotlinVersion"]

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:$gradle_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

def isNewArchitectureEnabled() {
    return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
}

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

def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') }

if (isNewArchitectureEnabled()) {
    apply plugin: "com.facebook.react"
}

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

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

static def supportsNamespace() {
    def parsed = Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
    def major = parsed[0].toInteger()
    def minor = parsed[1].toInteger()

    // Namespace support was added in 7.3.0
    return (major == 7 && minor >= 3) || major >= 8
}

android {
    if (supportsNamespace()) {
        namespace "io.caf.faceliveness"

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

    compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")

    defaultConfig {
        minSdkVersion getExtOrIntegerDefault("minSdkVersion")
        targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
    }

    buildTypes {
        release {
            minifyEnabled false
        }
    }

    lintOptions {
        disable "GradleCompatible"
    }

    buildFeatures {
        //noinspection DataBindingWithoutKapt
        dataBinding = true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    rootProject.allprojects {
        repositories {
            mavenLocal()
            maven { url 'https://repo.combateafraude.com/android/release' }
            maven { url 'https://raw.githubusercontent.com/iProov/android/master/maven/' }
            maven { url 'https://maven.fpregistry.io/releases' }
            maven { url 'https://jitpack.io' }
        }
    }
}

repositories {
    mavenCentral()
    google()
}

def kotlin_version = getExtOrDefault("kotlinVersion")

dependencies {
    // For < 0.71, this will be from the local maven repo
    // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+"
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation "io.caf.sdk:new-face-liveness:$face_liveness_version"
    implementation "androidx.constraintlayout:constraintlayout:$constraint_layout_version"
}
