// Copyright 2018 Google LLC
//
// 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.

import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
    id 'firebase-library'
    id("kotlin-android")
    id 'LicenseResolverPlugin'
}

firebaseLibrary {
    libraryGroup = "crashlytics"
    testLab {
        enabled = true
        device 'model=panther,version=33'
    }
    releaseNotes {
        name.set("{{crashlytics}}")
        versionName.set("crashlytics")
    }
}

android {
    adbOptions {
        timeOutInMs 60 * 1000
    }
    namespace "com.google.firebase.crashlytics"
    compileSdkVersion project.compileSdkVersion
    testOptions.unitTests.includeAndroidResources = true
    defaultConfig {
        minSdkVersion project.minSdkVersion
        targetSdkVersion project.targetSdkVersion
        versionName version

        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    sourceSets {
        androidTest {
            java {
                srcDir 'src/testUtil'
            }
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } }

thirdPartyLicenses {
    add 'Apache-2.0', "${rootDir}/third_party/licenses/apache-2.0.txt"
    add 'Tape', "${rootDir}/third_party/licenses/tape.txt"
}

dependencies {
    javadocClasspath(libs.findbugs.jsr305)

    api(project(":firebase-sessions"))
    api(libs.playservices.tasks)
    api(libs.firebase.annotations)
    api(libs.firebase.common)
    api(libs.firebase.components)
    api("com.google.firebase:firebase-config-interop:16.0.1")
    api("com.google.firebase:firebase-encoders:17.0.0")
    api("com.google.firebase:firebase-encoders-json:18.0.1")
    api("com.google.firebase:firebase-installations:18.0.0") {
        exclude group: 'com.google.firebase', module: 'firebase-common-ktx'
    }
    api("com.google.firebase:firebase-installations-interop:17.2.0")
    api("com.google.firebase:firebase-measurement-connector:20.0.1")

    implementation("com.google.android.datatransport:transport-api:3.2.0")
    implementation("com.google.android.datatransport:transport-backend-cct:3.3.0")
    implementation("com.google.android.datatransport:transport-runtime:3.3.0")
    implementation(libs.androidx.annotation)
    compileOnly(libs.errorprone.annotations)

    compileOnly(libs.autovalue.annotations)

    annotationProcessor(project(":encoders:firebase-encoders-processor"))
    annotationProcessor(libs.autovalue)

    testImplementation(libs.androidx.test.core)
    testImplementation(libs.androidx.test.runner)
    testImplementation(libs.junit)
    testImplementation(libs.mockito.core)
    testImplementation(libs.robolectric)
    testImplementation(libs.truth)
    testImplementation(project(":integ-testing"))

    androidTestImplementation(libs.androidx.test.core)
    androidTestImplementation(libs.androidx.test.runner)
    androidTestImplementation(libs.androidx.test.junit)
    androidTestImplementation("com.google.firebase:firebase-encoders-json:18.0.1")
    androidTestImplementation(libs.protobuf.java)
    androidTestImplementation(libs.truth)
    androidTestImplementation(libs.dexmaker)
    androidTestImplementation(libs.mockito.dexmaker)
    androidTestImplementation(libs.mockito.core)
    androidTestImplementation(libs.androidx.test.junit)
    androidTestImplementation(libs.androidx.test.runner)
    androidTestImplementation(libs.truth)
    androidTestImplementation(libs.playservices.tasks)
    androidTestImplementation(project(":integ-testing"))
}
