| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import java.util.Properties
- plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
- id("org.jetbrains.kotlin.plugin.compose")
- }
- val signingPropertiesFile = rootProject.file("signing.properties")
- val signingProperties = Properties().apply {
- if (signingPropertiesFile.exists()) signingPropertiesFile.inputStream().use(::load)
- }
- android {
- namespace = "com.joe.camera.webcam"
- compileSdk = 35
- defaultConfig {
- applicationId = "com.joe.camera.webcam"
- minSdk = 24
- targetSdk = 35
- versionCode = 1
- versionName = "1.0.0"
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- vectorDrawables.useSupportLibrary = true
- }
- buildFeatures {
- compose = true
- aidl = true
- buildConfig = true
- }
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
- }
- kotlinOptions { jvmTarget = "17" }
- signingConfigs {
- if (signingPropertiesFile.exists()) {
- create("production") {
- storeFile = file(signingProperties.getProperty("storeFile"))
- storePassword = signingProperties.getProperty("storePassword")
- keyAlias = signingProperties.getProperty("keyAlias")
- keyPassword = signingProperties.getProperty("keyPassword")
- }
- }
- }
- buildTypes {
- release {
- isMinifyEnabled = true
- isShrinkResources = true
- if (signingPropertiesFile.exists()) signingConfig = signingConfigs.getByName("production")
- proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
- }
- }
- packaging.resources.excludes += "/META-INF/{AL2.0,LGPL2.1}"
- }
- dependencies {
- val composeBom = platform("androidx.compose:compose-bom:2024.12.01")
- implementation(composeBom)
- androidTestImplementation(composeBom)
- implementation("androidx.core:core-ktx:1.15.0")
- implementation("androidx.activity:activity-compose:1.10.0")
- implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
- implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7")
- implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")
- implementation("androidx.navigation:navigation-compose:2.8.5")
- implementation("androidx.compose.ui:ui")
- implementation("androidx.compose.ui:ui-tooling-preview")
- implementation("androidx.compose.material3:material3")
- implementation("androidx.compose.material:material-icons-extended")
- debugImplementation("androidx.compose.ui:ui-tooling")
- val cameraX = "1.4.1"
- implementation("androidx.camera:camera-core:$cameraX")
- implementation("androidx.camera:camera-camera2:$cameraX")
- implementation("androidx.camera:camera-lifecycle:$cameraX")
- implementation("androidx.camera:camera-video:$cameraX")
- implementation("androidx.camera:camera-view:$cameraX")
- implementation("androidx.media3:media3-exoplayer:1.5.1")
- implementation("androidx.media3:media3-ui:1.5.1")
- implementation("io.coil-kt:coil-compose:2.7.0")
- implementation("io.coil-kt:coil-video:2.7.0")
- implementation("dev.rikka.shizuku:api:13.1.5")
- implementation("dev.rikka.shizuku:provider:13.1.5")
- testImplementation("junit:junit:4.13.2")
- testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
- androidTestImplementation("androidx.test.ext:junit:1.2.1")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
- androidTestImplementation("androidx.compose.ui:ui-test-junit4")
- debugImplementation("androidx.compose.ui:ui-test-manifest")
- }
|