buildscript {
	ext.getExtOrDefault = {name ->
		return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativeEnriched_' + name]
	}

	repositories {
		google()
		mavenCentral()
		gradlePluginPortal()
	}

	dependencies {
		classpath "com.android.tools.build:gradle:8.7.2"
		// noinspection DifferentKotlinGradleVersion
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
		classpath "org.jlleitschuh.gradle:ktlint-gradle:14.0.1"
		classpath 'com.diffplug.spotless:spotless-plugin-gradle:8.1.0'
	}
}


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

apply plugin: "com.facebook.react"

apply from: "lint.gradle"

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

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.swmansion.enriched"

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

	compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")

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

	buildFeatures {
		buildConfig true
	}

	buildTypes {
		release {
			minifyEnabled false
		}
	}

	lintOptions {
		disable "GradleCompatible"
	}

	compileOptions {
		sourceCompatibility JavaVersion.VERSION_1_8
		targetCompatibility JavaVersion.VERSION_1_8
	}

	sourceSets {
		main {
			java.srcDirs += [
				"generated/java",
				"generated/jni"
			]
		}
	}
}

repositories {
	mavenCentral()
	google()
}

def kotlin_version = getExtOrDefault("kotlinVersion")

dependencies {
	implementation "com.facebook.react:react-android"
	implementation 'org.ccil.cowan.tagsoup:tagsoup:1.2.1'
	implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

react {
	jsRootDir = file("../src/")
	libraryName = "ReactNativeEnriched"
	codegenJavaPackageName = "com.swmansion.enriched"
}
