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

	repositories {
		google()
		mavenCentral()
	}

	dependencies {
		classpath "com.android.tools.build:gradle:8.7.3"
		// noinspection DifferentKotlinGradleVersion
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
	}
}


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


def getExtOrIntegerDefault(name) {
	return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["AudioPro_" + 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 "dev.rnap.reactnativeaudiopro"

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

	compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")

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

	buildTypes {
		release {
			minifyEnabled false
		}
	}

	lintOptions {
		disable "GradleCompatible"
	}

	compileOptions {
		sourceCompatibility JavaVersion.VERSION_1_8
		targetCompatibility JavaVersion.VERSION_1_8
	}
}

repositories {
	mavenCentral()
	google()
}

def kotlin_version = getExtOrDefault("kotlinVersion")

dependencies {
	implementation "com.facebook.react:react-android"
	implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

	implementation "androidx.media3:media3-exoplayer:1.6.0"
	implementation "androidx.media3:media3-session:1.6.0"
	implementation "androidx.media3:media3-common:1.6.0"
	implementation "androidx.media3:media3-common-ktx:1.6.0"

	implementation "androidx.core:core-ktx:1.16.0"
	implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.8.7"

	implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0"
}
