/*
 * Copyright 2021 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 {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        versionName project.ext.releaseVersion
        versionCode project.ext.releaseVersionCode
        minSdkVersion 21
        targetSdkVersion project.ext.appTargetSdkVersion
        multiDexEnabled true
    }

    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
        }
    }

    lintOptions {
        // This demo app isn't indexed and doesn't have translations.
        disable 'GoogleAppIndexingWarning','MissingTranslation'
    }

    flavorDimensions "mediaPipe"

    productFlavors {
        noMediaPipe {
            dimension "mediaPipe"
        }
        withMediaPipe {
            dimension "mediaPipe"
        }
    }

    // Ignore the withMediaPipe variant if the MediaPipe AAR is not present.
    if (!project.file("libs/edge_detector_mediapipe_aar.aar").exists()) {
        variantFilter { variant ->
            def names = variant.flavors*.name
            if (names.contains("withMediaPipe")) {
                setIgnore(true)
            }
        }
    }
}

dependencies {
    implementation 'androidx.core:core:' + androidxCoreVersion
    compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
    implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
    implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion
    implementation 'androidx.constraintlayout:constraintlayout:' + androidxConstraintLayoutVersion
    implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
    implementation 'com.google.android.material:material:' + androidxMaterialVersion
    implementation project(modulePrefix + 'library-effect')
    implementation project(modulePrefix + 'library-core')
    implementation project(modulePrefix + 'library-dash')
    implementation project(modulePrefix + 'library-transformer')
    implementation project(modulePrefix + 'library-ui')

    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'

    // For MediaPipe and its dependencies:
    withMediaPipeImplementation fileTree(dir: 'libs', include: ['*.aar'])
    withMediaPipeImplementation 'com.google.flogger:flogger:latest.release'
    withMediaPipeImplementation 'com.google.flogger:flogger-system-backend:latest.release'
    withMediaPipeImplementation 'com.google.code.findbugs:jsr305:latest.release'
    withMediaPipeImplementation 'com.google.protobuf:protobuf-javalite:3.19.1'
}
