import java.util.Properties plugins { id("com.android.application") id("dev.flutter.flutter-gradle-plugin") } val hasFirebaseConfiguration = file("google-services.json").exists() if (hasFirebaseConfiguration) { apply(plugin = "com.google.gms.google-services") apply(plugin = "com.google.firebase.crashlytics") } val signingProperties = Properties() val signingPropertiesFile = rootProject.file("key.properties") if (signingPropertiesFile.exists()) { signingPropertiesFile.inputStream().use(signingProperties::load) } android { namespace = "com.sentinelshield.mobile" compileSdk = 35 ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 isCoreLibraryDesugaringEnabled = true } defaultConfig { applicationId = "com.sentinelshield.mobile" minSdk = 26 targetSdk = 35 versionCode = flutter.versionCode versionName = flutter.versionName manifestPlaceholders["usesCleartextTraffic"] = "false" manifestPlaceholders["GOOGLE_MAPS_API_KEY"] = providers.gradleProperty("GOOGLE_MAPS_API_KEY").orElse("").get() } flavorDimensions += "environment" productFlavors { create("development") { dimension = "environment" applicationIdSuffix = ".dev" versionNameSuffix = "-dev" resValue("string", "app_name", "Digital Chaukidar Dev") manifestPlaceholders["usesCleartextTraffic"] = "true" } create("staging") { dimension = "environment" applicationIdSuffix = ".staging" versionNameSuffix = "-staging" resValue("string", "app_name", "Digital Chaukidar Staging") } create("production") { dimension = "environment" resValue("string", "app_name", "Digital Chaukidar") } } signingConfigs { if (signingPropertiesFile.exists()) { create("release") { keyAlias = signingProperties.getProperty("keyAlias") keyPassword = signingProperties.getProperty("keyPassword") storeFile = file(signingProperties.getProperty("storeFile")) storePassword = signingProperties.getProperty("storePassword") } } } buildTypes { debug { isMinifyEnabled = false } release { isMinifyEnabled = true isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", ) if (signingPropertiesFile.exists()) { signingConfig = signingConfigs.getByName("release") } } } } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } flutter { source = "../.." } dependencies { coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5") implementation("androidx.camera:camera-camera2:1.4.2") implementation("androidx.camera:camera-core:1.4.2") implementation("androidx.camera:camera-lifecycle:1.4.2") implementation("androidx.lifecycle:lifecycle-service:2.9.1") }