buildscript {
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.5.1'
    }
}

allprojects {
    repositories {
        // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info.
        def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY'
        if (System.getenv().containsKey(artifactRepoKey)) {
            println "Using artifact hub"
            maven { url System.getenv(artifactRepoKey) }
        }
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

// Build the plugin project with warnings enabled. This is here rather than
// in the plugin itself to avoid breaking clients that have different
// warnings (e.g., deprecation warnings from a newer SDK than this project
// builds with).
gradle.projectsEvaluated {
    project(":video_player_android") {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:all" << "-Werror"

            // Workaround for several warnings when building
            // that the above turns into errors, coming from
            // org.checkerframework.checker.nullness.qual and
            // com.google.errorprone.annotations:
            //
            //   warning: Cannot find annotation method 'value()' in type
            //   'EnsuresNonNull': class file for
            //   org.checkerframework.checker.nullness.qual.EnsuresNonNull not found
            //
            //   warning: Cannot find annotation method 'replacement()' in type
            //   'InlineMe': class file for
            //   com.google.errorprone.annotations.InlineMe not found
            //
            // The dependency version are taken from:
            // https://github.com/google/ExoPlayer/blob/r2.18.1/constants.gradle
            //
            // For future reference the dependencies are excluded here:
            // https://github.com/google/ExoPlayer/blob/r2.18.1/library/common/build.gradle#L33-L34
            dependencies {
                implementation "org.checkerframework:checker-qual:3.13.0"
                implementation "com.google.errorprone:error_prone_annotations:2.10.0"
            }
        }
    }
}
