/* * SPDX-FileCopyrightText: 2022-2024 The LineageOS Project * SPDX-License-Identifier: Apache-2.0 */ import org.lineageos.generatebp.GenerateBpPlugin import org.lineageos.generatebp.GenerateBpPluginExtension import org.lineageos.generatebp.models.Module plugins { id("com.android.application") id("kotlin-android") } apply { plugin() } buildscript { repositories { maven("https://raw.githubusercontent.com/lineage-next/gradle-generatebp/v1.6/.m2") } dependencies { classpath("org.lineageos:gradle-generatebp:+") } } android { compileSdk = 33 namespace = "org.leos.aperture" defaultConfig { applicationId = "org.leos.aperture" minSdk = 26 targetSdk = 33 versionCode = 2 versionName = "1.6" } buildTypes { getByName("release") { // Enables code shrinking, obfuscation, and optimization. isMinifyEnabled = true // Enables resource shrinking. isShrinkResources = true // Includes the default ProGuard rules files. setProguardFiles( listOf( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) ) } getByName("debug") { // Append .dev to package name so we won't conflict with AOSP build. applicationIdSuffix = ".dev" } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } dependencies { // Align versions of all Kotlin components implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) implementation("androidx.core:core-ktx:1.10.1") implementation("androidx.activity:activity-ktx:1.7.2") implementation("androidx.appcompat:appcompat:1.6.1") implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.exifinterface:exifinterface:1.3.7") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2") implementation("androidx.preference:preference:1.2.1") implementation("com.google.android.material:material:1.9.0") // CameraX core library using the camera2 implementation val cameraxVersion = "1.4.0-alpha04" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${cameraxVersion}") implementation("androidx.camera:camera-camera2:${cameraxVersion}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${cameraxVersion}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${cameraxVersion}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${cameraxVersion}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${cameraxVersion}") // Media3 val media3Version = "1.1.1" // For media playback using ExoPlayer implementation("androidx.media3:media3-exoplayer:$media3Version") // For building media playback UIs implementation("androidx.media3:media3-ui:$media3Version") // ZXing implementation("com.google.zxing:core:3.5.2") // Coil implementation("io.coil-kt:coil:2.4.0") implementation("io.coil-kt:coil-video:2.4.0") } configure { targetSdk.set(android.defaultConfig.targetSdk!!) availableInAOSP.set { module: Module -> when { module.group.startsWith("androidx") -> { // We provide our own androidx.{camera,media3} & lifecycle-common !module.group.startsWith("androidx.camera") && !module.group.startsWith("androidx.media3") && module.name != "lifecycle-common" } module.group.startsWith("org.jetbrains") -> true module.group == "com.google.auto.value" -> true module.group == "com.google.errorprone" -> true module.group == "com.google.guava" -> true module.group == "junit" -> true else -> false } } }