ext {
    junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
    androidxVersion = project.hasProperty('androidxVersion') ? rootProject.ext.androidxVersion : '1.7.0'
    supportTestVersion = project.hasProperty('supportTestVersion') ? rootProject.ext.supportTestVersion : '1.0.2'
    espressoVersion = project.hasProperty('espressoVersion') ? rootProject.ext.espressoVersion : '3.0.2'
}

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:8.7.2'
    }
}

apply plugin: 'com.android.library'

android {
    namespace "com.goalplay.capacitormediasession"
    compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 35
    defaultConfig {
        minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 23
        targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 35
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_21
        targetCompatibility JavaVersion.VERSION_21
    }
}

repositories {
    google()
    mavenCentral()
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':capacitor-android')
    
    // AndroidX dependencies
    implementation "androidx.appcompat:appcompat:$androidxVersion"
    implementation "androidx.core:core:1.15.0"
    implementation "androidx.media:media:1.7.0"
    implementation "androidx.media3:media3-session:1.2.1"
    implementation "androidx.media3:media3-common:1.2.1"
    implementation "androidx.media3:media3-exoplayer:1.2.1"
    implementation "androidx.media3:media3-ui:1.2.1"
    implementation "androidx.media3:media3-session:1.2.1"
    implementation "androidx.media3:media3-transformer:1.2.1"
    implementation "androidx.media3:media3-datasource:1.2.1"
    implementation "androidx.media3:media3-datasource-cronet:1.2.1"
    implementation "androidx.media3:media3-datasource-rtmp:1.2.1"
    implementation "androidx.media3:media3-datasource-cast:1.2.1"
    implementation "androidx.media3:media3-datasource-dash:1.2.1"
    implementation "androidx.media3:media3-datasource-hls:1.2.1"
    implementation "androidx.media3:media3-datasource-smoothstreaming:1.2.1"
    implementation "androidx.media3:media3-datasource-ssai:1.2.1"
    implementation "androidx.media3:media3-datasource-rtsp:1.2.1"
    implementation "androidx.media3:media3-datasource-icy:1.2.1"
    implementation "androidx.media3:media3-datasource-ads:1.2.1"
    implementation "androidx.media3:media3-datasource-cronet:1.2.1"
    implementation "androidx.media3:media3-datasource-rtmp:1.2.1"
    implementation "androidx.media3:media3-datasource-cast:1.2.1"
    implementation "androidx.media3:media3-datasource-dash:1.2.1"
    implementation "androidx.media3:media3-datasource-hls:1.2.1"
    implementation "androidx.media3:media3-datasource-smoothstreaming:1.2.1"
    implementation "androidx.media3:media3-datasource-ssai:1.2.1"
    implementation "androidx.media3:media3-datasource-rtsp:1.2.1"
    implementation "androidx.media3:media3-datasource-icy:1.2.1"
    implementation "androidx.media3:media3-datasource-ads:1.2.1"
    
    // Testing dependencies
    testImplementation "junit:junit:$junitVersion"
    androidTestImplementation "androidx.test:runner:$supportTestVersion"
    androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
}
