buildscript {
    ext.kotlin_version = '1.9.23'
    repositories {
        google()
        mavenCentral()
    }

    ext.safeExtGet = {prop, fallback ->
        def props = (prop instanceof String) ? [prop] : prop
        def result = props.find { key ->
            return rootProject.ext.has(key)
        }
        return result ? rootProject.ext.get(result) : fallback
    }

    dependencies {
        classpath "com.android.tools.build:gradle:8.7.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', kotlin_version)}"
    }
}

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

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

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

def supportsNamespace() {
  def parsed = com.android.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 "com.yookassa"

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

    compileSdkVersion 35

    defaultConfig {
        buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
        minSdkVersion 24
        targetSdkVersion 35
    }
    lintOptions {
        abortOnError false
    }
        sourceSets {
          main {
            if (isNewArchitectureEnabled()) {
                java.srcDirs += [
                  "generated",
                  'src/newarch'
                ]
            } else {
                java.srcDirs += [
                  'src/oldarch'
                ]
            }
          }
        }
}

repositories {
    mavenCentral()
    google()
}

dependencies {
//  as my project doesn't require yoomoney payment method (oly card), this lib apparently isn't necessary
//    implementation "ru.yoo.sdk.auth:auth:1.0.51"
    // 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 'ru.yoomoney.sdk.kassa.payments:yookassa-android-sdk:7.1.0'
}

if (isNewArchitectureEnabled()) {
  react {
    jsRootDir = file("../src/")
    libraryName = "Yookassa"
    codegenJavaPackageName = "com.yookassa"
  }
}
