// 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: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"

android {
    defaultConfig {
        // The following argument makes the Android Test Orchestrator run its
        // "pm clear" command after each test invocation. This command ensures
        // that the app's state is completely cleared between tests.
        testInstrumentationRunnerArguments clearPackageData: 'true'
        multiDexEnabled true
    }

    buildTypes {
        debug {
            testCoverageEnabled = true
        }
    }

    sourceSets {
        androidTest.assets.srcDir '../../testdata/src/test/assets/'
        test.assets.srcDir '../../testdata/src/test/assets/'
    }
}

dependencies {
    api project(modulePrefix + 'library-common')
    // TODO(b/203754886): Revisit which modules are exported as API dependencies.
    api project(modulePrefix + 'library-datasource')
    api project(modulePrefix + 'library-decoder')
    api project(modulePrefix + 'library-extractor')
    api project(modulePrefix + 'library-database')
    implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
    implementation 'androidx.core:core:' + androidxCoreVersion
    compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version
    compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
    compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
    compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
    compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion
    androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion
    androidTestImplementation 'com.linkedin.dexmaker:dexmaker:' + dexmakerVersion
    androidTestImplementation 'com.linkedin.dexmaker:dexmaker-mockito:' + dexmakerVersion
    androidTestImplementation(project(modulePrefix + 'testutils')) {
        exclude module: modulePrefix.substring(1) + 'library-core'
    }
    androidTestImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion
    testImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion
    testImplementation 'org.robolectric:robolectric:' + robolectricVersion
    testImplementation project(modulePrefix + 'testutils')
    testImplementation project(modulePrefix + 'robolectricutils')
}

ext {
    javadocTitle = 'Core module'
}
apply from: '../../javadoc_library.gradle'

ext {
    releaseArtifactId = 'exoplayer-core'
    releaseDescription = 'The ExoPlayer library core module.'
}
apply from: '../../publish.gradle'
