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

def safeExtGet(String prop, Object fallback) {
  return rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}

def safeExtGetInt(String prop, Number fallback) {
  return safeExtGet(prop, fallback).toString().toInteger()
}

def kotlinVersion = safeExtGet('kotlinVersion', '1.9.22')

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

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

android {
  namespace 'com.iaphub.RNIaphub'
  compileSdkVersion safeExtGetInt('compileSdkVersion', 35)

  defaultConfig {
    minSdkVersion safeExtGetInt('minSdkVersion', 23)
    targetSdkVersion safeExtGetInt('targetSdkVersion', 35)
    versionCode 1
    versionName safeExtGet('versionName', '1.0').toString()
  }

  buildTypes {
    release {
      minifyEnabled false
    }
  }

  lintOptions {
    disable 'GradleCompatible'
  }

  buildFeatures {
    buildConfig = false
  }

  sourceSets {
    main {
      java.srcDir('src/main/java')
      if (isNewArchitectureEnabled()) {
        java.srcDir('src/newarch/java')
        java.srcDir("$buildDir/generated/source/codegen/java")
      } else {
        java.srcDir('src/oldarch/java')
      }
    }
  }
}

repositories {
  mavenCentral()
  google()
  maven { url("$rootDir/../node_modules/react-native/android") }
}

dependencies {
  implementation 'com.facebook.react:react-native:+'
  implementation 'com.iaphub:iaphub-android-sdk:5.2.1'
  implementation 'com.google.code.gson:gson:2.8.9'
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
}
