import groovy.json.JsonSlurper

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

apply plugin: 'com.android.library'

boolean dash = false, hls = false, smoothstreaming = false

File file = file('../../../track-player.json')
if(file.exists()) {
    def json = new JsonSlurper().parseText(file.text)
    dash = json.dash ?: dash
    hls = json.hls ?: hls
    smoothstreaming = json.smoothstreaming ?: smoothstreaming
}

def safeExtGet(prop, fallback) {
    rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}

android {
    compileSdkVersion safeExtGet("compileSdkVersion", 28)

    defaultConfig {
        minSdkVersion safeExtGet("minSdkVersion", 16) // RN's minimum version
        targetSdkVersion safeExtGet("targetSdkVersion", 28)

        versionCode 1
        versionName "1.0"
        
        consumerProguardFiles 'proguard-rules.txt'
    }

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

repositories {
    maven {
        // As RN is not updated in jcenter anymore, we'll have to grab it from npm
        // Make sure you have installed the react-native npm package before compiling
        url "../node_modules/react-native/android"
    }

    jcenter()
    google()
    mavenCentral()
}

dependencies {
    //noinspection GradleDynamicVersion
    implementation 'com.facebook.react:react-native:+'
    
    def exoPlayerVersion = safeExtGet("exoPlayerVersion", '2.10.1');

    // ExoPlayer Core
    implementation "com.google.android.exoplayer:exoplayer-core:${exoPlayerVersion}"

    // ExoPlayer DASH
    if (dash) {
        implementation "com.google.android.exoplayer:exoplayer-dash:${exoPlayerVersion}"
    } else {
        compileOnly "com.google.android.exoplayer:exoplayer-dash:${exoPlayerVersion}"
    }

    // ExoPlayer HLS
    if (hls) {
        implementation "com.google.android.exoplayer:exoplayer-hls:${exoPlayerVersion}"
    } else {
        compileOnly "com.google.android.exoplayer:exoplayer-hls:${exoPlayerVersion}"
    }

    // ExoPlayer SmoothStreaming
    if (smoothstreaming) {
        implementation "com.google.android.exoplayer:exoplayer-smoothstreaming:${exoPlayerVersion}"
    } else {
        compileOnly "com.google.android.exoplayer:exoplayer-smoothstreaming:${exoPlayerVersion}"
    }

    // Make sure we're using androidx
    implementation "androidx.core:core:1.2.0-alpha02"
    implementation "androidx.media:media:1.1.0-rc01"
    implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.1.0-alpha01"
    implementation "com.github.bumptech.glide:glide:4.7.1"
}
