// 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 plugin: 'com.android.library'
apply from: '../../constants.gradle'

android {
    compileSdkVersion project.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion project.ext.minSdkVersion
        targetSdkVersion project.ext.targetSdkVersion
        consumerProguardFiles 'proguard-rules.txt'

        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'

        // 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'
    }

    // MOD: comment out to fix: intellij: root already belongs to module
    // Workaround to prevent circular dependency on project :testutils.
    sourceSets {
        androidTest {
            java.srcDirs += '../../testutils/src/main/java/'
        }
        test {
            java.srcDirs += '../../testutils/src/main/java/'
            java.srcDirs += '../../testutils_robolectric/src/main/java/'
        }
    }

    buildTypes {
        // Re-enable test coverage when the following issue is fixed:
        // https://issuetracker.google.com/issues/37019591
        // debug {
        //    testCoverageEnabled = true
        // }
    }

    testOptions.unitTests.includeAndroidResources = true
}

dependencies {
    // MODIFIED: add custom dns resolver
    implementation project(':sharedutils')
    implementation 'androidx.annotation:annotation:' + annotationXLibraryVersion
    compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
    compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkVersion
    androidTestImplementation 'androidx.test:runner:' + androidXTestVersion
    androidTestImplementation 'androidx.test.ext:junit:' + androidXTestVersion
    androidTestImplementation 'androidx.test.ext:truth:' + androidXTestVersion
    androidTestImplementation 'com.google.auto.value:auto-value-annotations:' + autoValueVersion
    androidTestImplementation 'com.linkedin.dexmaker:dexmaker:' + dexmakerVersion
    androidTestImplementation 'com.linkedin.dexmaker:dexmaker-mockito:' + dexmakerVersion
    androidTestImplementation 'org.mockito:mockito-core:' + mockitoVersion
    androidTestAnnotationProcessor 'com.google.auto.value:auto-value:' + autoValueVersion
    testImplementation 'androidx.test:core:' + androidXTestVersion
    testImplementation 'androidx.test.ext:junit:' + androidXTestVersion
    testImplementation 'androidx.test.ext:truth:' + androidXTestVersion
    testImplementation 'org.mockito:mockito-core:' + mockitoVersion
    testImplementation 'org.robolectric:robolectric:' + robolectricVersion
    testImplementation 'com.google.auto.value:auto-value-annotations:' + autoValueVersion
    testAnnotationProcessor 'com.google.auto.value:auto-value:' + autoValueVersion
}

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

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