apply plugin: 'com.android.library'

def consumerValue = { String name, Object fallback ->
    if (rootProject.ext.has(name)) {
        return rootProject.ext.get(name)
    }
    return project.hasProperty(name) ? project.property(name) : fallback
}

def compileSdkValue = consumerValue('compileSdkVersion', 35).toString().toInteger()
def minSdkValue = consumerValue('minSdkVersion', 21).toString().toInteger()
def targetSdkValue = consumerValue('targetSdkVersion', 35).toString().toInteger()

def reactNativeVersion = consumerValue('reactNativeVersion', null)?.toString()
if (reactNativeVersion == null) {
    def reactNativePackageJson = rootProject.file('../node_modules/react-native/package.json')
    if (reactNativePackageJson.exists()) {
        def versionMatcher = reactNativePackageJson.getText('UTF-8') =~ /"version"\s*:\s*"([^"]+)"/
        if (versionMatcher.find()) {
            reactNativeVersion = versionMatcher.group(1)
        }
    }
}

def reactNativeArtifact = 'react-android'
if (reactNativeVersion != null) {
    def versionParts = reactNativeVersion.tokenize('.-')
    def majorVersion = versionParts[0].toInteger()
    def minorVersion = versionParts.size() > 1 ? versionParts[1].toInteger() : 0
    if (majorVersion == 0 && minorVersion < 71) {
        reactNativeArtifact = 'react-native'
    }
}
def reactNativeDependency = "com.facebook.react:${reactNativeArtifact}"
if (reactNativeVersion != null) {
    reactNativeDependency += ":${reactNativeVersion}"
}

android {
    namespace = "com.huawei.hms.rn.health"
    compileSdk = compileSdkValue

    defaultConfig {
        minSdk = minSdkValue
        targetSdk = targetSdkValue
    }

    lint {
        abortOnError = false
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
}

dependencies {
    compileOnly(reactNativeDependency)

    // HMS HEALTH
    implementation "com.huawei.hms:health:6.15.0.300"
    // AGCONNECT
    implementation "com.huawei.agconnect:agconnect-core:1.9.1.304"
}
