| /* |
| * Copyright (C) 2023 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. |
| */ |
| |
| plugins { |
| id("com.android.application") |
| id("org.jetbrains.kotlin.android") |
| id("kotlin-kapt") |
| id("com.google.dagger.hilt.android") |
| } |
| |
| android { |
| namespace = "com.google.jetpackcamera" |
| compileSdk = 34 |
| |
| defaultConfig { |
| applicationId = "com.google.jetpackcamera" |
| minSdk = 21 |
| targetSdk = 34 |
| versionCode = 1 |
| versionName = "1.0" |
| |
| testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" |
| vectorDrawables { |
| useSupportLibrary = true |
| } |
| } |
| |
| buildTypes { |
| release { |
| isMinifyEnabled = true |
| proguardFiles( |
| getDefaultProguardFile("proguard-android-optimize.txt"), |
| "proguard-rules.pro" |
| ) |
| } |
| } |
| compileOptions { |
| sourceCompatibility = JavaVersion.VERSION_17 |
| targetCompatibility = JavaVersion.VERSION_17 |
| } |
| kotlin { |
| jvmToolchain(17) |
| } |
| buildFeatures { |
| compose = true |
| } |
| composeOptions { |
| kotlinCompilerExtensionVersion = "1.4.0" |
| } |
| packagingOptions { |
| resources { |
| excludes += "/META-INF/{AL2.0,LGPL2.1}" |
| } |
| } |
| } |
| |
| dependencies { |
| // Compose |
| val composeBom = platform("androidx.compose:compose-bom:2023.08.00") |
| implementation(composeBom) |
| androidTestImplementation(composeBom) |
| |
| // Compose - Material Design 3 |
| implementation("androidx.compose.material3:material3") |
| |
| // Compose - Android Studio Preview support |
| implementation("androidx.compose.ui:ui-tooling-preview") |
| debugImplementation("androidx.compose.ui:ui-tooling") |
| |
| // Compose - Integration with ViewModels |
| implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1") |
| |
| // Compose - Integration with Activities |
| implementation("androidx.activity:activity-compose") |
| |
| // Compose - Testing |
| androidTestImplementation("androidx.compose.ui:ui-test-junit4") |
| |
| // Testing |
| testImplementation("junit:junit:4.13.2") |
| androidTestImplementation("androidx.test.ext:junit:1.1.3") |
| androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") |
| androidTestImplementation("androidx.test:rules:1.5.0") |
| androidTestImplementation("androidx.test.uiautomator:uiautomator:2.2.0") |
| |
| implementation("androidx.core:core-ktx:1.8.0") |
| implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.3.1") |
| |
| // Hilt |
| implementation("com.google.dagger:hilt-android:2.44") |
| kapt("com.google.dagger:hilt-compiler:2.44") |
| |
| // Accompanist - Permissions |
| implementation("com.google.accompanist:accompanist-permissions:0.26.5-rc") |
| |
| // Jetpack Navigation |
| val nav_version = "2.5.3" |
| implementation("androidx.navigation:navigation-compose:$nav_version") |
| |
| // Access Settings data |
| implementation(project(":data:settings")) |
| |
| // Camera Preview |
| implementation(project(":feature:preview")) |
| |
| // Settings Screen |
| implementation(project(":feature:settings")) |
| } |
| |
| // Allow references to generated code |
| kapt { |
| correctErrorTypes = true |
| } |