plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    compileSdk 33

    defaultConfig {
        applicationId "org.lineageos.aperture"
        minSdk 29
        targetSdk 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.8.0'
    implementation 'androidx.appcompat:appcompat:1.5.0'
    implementation 'androidx.concurrent:concurrent-futures-ktx:1.1.0'
    implementation 'com.google.android.material:material:1.7.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'androidx.exifinterface:exifinterface:1.3.3'
    implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
    implementation 'androidx.preference:preference:1.2.0'

    // CameraX core library using the camera2 implementation
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation files('libs/camera-core-release.aar')
    implementation files('libs/camera-camera2-release.aar')
    // If you want to additionally use the CameraX Lifecycle library
    implementation files('libs/camera-lifecycle-release.aar')
    // If you want to additionally use the CameraX VideoCapture library
    implementation files('libs/camera-video-release.aar')
    // If you want to additionally use the CameraX View class
    implementation files('libs/camera-view-release.aar')
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation files('libs/camera-mlkit-vision-release.aar')
    // If you want to additionally use the CameraX Extensions library
    implementation files('libs/camera-extensions-release.aar')

    // ZXing
    implementation 'com.google.zxing:core:3.5.0'
}