group 'io.flutter.plugins.videoplayer'
version '1.0-SNAPSHOT'
def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"]

buildscript {
    repositories {
        google()
        mavenCentral()
    }

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

rootProject.allprojects {
    repositories {
        google()
        mavenCentral()
        // Gradle versions older than 2.13.3 aren't published to the servers
        // above, so add this URL as a workaround until upgrading past that
        // version.
        maven {
            url 'https://google.bintray.com/exoplayer/'
        }
    }
}

project.getTasks().withType(JavaCompile){
    options.compilerArgs.addAll(args)
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 29

    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }
    android {
        compileOptions {
            sourceCompatibility 1.8
            targetCompatibility 1.8
        }
    }

    dependencies {
        implementation 'com.google.android.exoplayer:exoplayer-core:2.12.1'
        implementation 'com.google.android.exoplayer:exoplayer-hls:2.12.1'
        implementation 'com.google.android.exoplayer:exoplayer-dash:2.12.1'
        implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1'
    }
}
