// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

apply from: '../../constants.gradle'
apply plugin: 'com.android.application'

android {
    compileSdkVersion project.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        versionName project.ext.releaseVersion
        versionCode project.ext.releaseVersionCode
        minSdkVersion project.ext.minSdkVersion
        // Not using appTargetSDKVersion to allow local file access on API 29
        // and higher [Internal ref: b/191644662]
        targetSdkVersion project.ext.mainDemoAppTargetSdkVersion
        multiDexEnabled true
    }

    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles = [
                "proguard-rules.txt",
                getDefaultProguardFile('proguard-android.txt')
            ]
            signingConfig signingConfigs.debug
        }
        debug {
            jniDebuggable = true
        }
    }

    lintOptions {
        // The demo app isn't indexed, doesn't have translations, and has a
        // banner for AndroidTV that's only in xhdpi density.
        disable 'GoogleAppIndexingWarning','MissingTranslation','IconDensities'
    }

    flavorDimensions "decoderExtensions"

    productFlavors {
        noDecoderExtensions {
            dimension "decoderExtensions"
            buildConfigField "boolean", "USE_DECODER_EXTENSIONS", "false"
        }
        withDecoderExtensions {
            dimension "decoderExtensions"
            buildConfigField "boolean", "USE_DECODER_EXTENSIONS", "true"
        }
    }
}

dependencies {
    compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
    implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
    implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion
    implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
    implementation 'com.google.android.material:material:' + androidxMaterialVersion
    implementation project(modulePrefix + 'library-core')
    implementation project(modulePrefix + 'library-dash')
    implementation project(modulePrefix + 'library-hls')
    implementation project(modulePrefix + 'library-rtsp')
    implementation project(modulePrefix + 'library-smoothstreaming')
    implementation project(modulePrefix + 'library-ui')
    implementation project(modulePrefix + 'extension-cronet')
    implementation project(modulePrefix + 'extension-ima')
    withDecoderExtensionsImplementation project(modulePrefix + 'extension-av1')
    withDecoderExtensionsImplementation project(modulePrefix + 'extension-ffmpeg')
    withDecoderExtensionsImplementation project(modulePrefix + 'extension-flac')
    withDecoderExtensionsImplementation project(modulePrefix + 'extension-opus')
    withDecoderExtensionsImplementation project(modulePrefix + 'extension-vp9')
    withDecoderExtensionsImplementation project(modulePrefix + 'extension-rtmp')
}

apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'
