import java.util.Properties plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.plugin.compose") } // MÊME keystore release que l'app patient (permet à terme la permission de // signature sur le ContentProvider). Voir docs/RELEASE_SIGNING.md. val releaseKeystoreProps = Properties().apply { val f = file("/opt/Kazeia/keystore/credentials.properties") if (f.exists()) f.inputStream().use { load(it) } } val hasReleaseKeystore = releaseKeystoreProps.getProperty("storeFile") ?.let { file(it).exists() } == true android { namespace = "com.kazeia.admin" compileSdk = 36 signingConfigs { if (hasReleaseKeystore) { create("release") { storeFile = file(releaseKeystoreProps.getProperty("storeFile")) storePassword = releaseKeystoreProps.getProperty("storePassword") keyAlias = releaseKeystoreProps.getProperty("keyAlias") keyPassword = releaseKeystoreProps.getProperty("keyPassword") } } } defaultConfig { applicationId = "com.kazeia.admin" minSdk = 28 targetSdk = 36 versionCode = 1 versionName = "0.1.0-mvp" ndk { abiFilters += "arm64-v8a" } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) if (hasReleaseKeystore) { signingConfig = signingConfigs.getByName("release") } else { logger.warn("⚠ keystore release absent (/opt/Kazeia/keystore/) — release signé en DEBUG. Voir docs/RELEASE_SIGNING.md") signingConfig = signingConfigs.getByName("debug") } } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true buildConfig = true } } dependencies { val composeBom = platform("androidx.compose:compose-bom:2024.12.01") implementation(composeBom) // Compose implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") implementation("androidx.compose.material:material-icons-extended") implementation("androidx.activity:activity-compose:1.9.3") implementation("androidx.navigation:navigation-compose:2.8.5") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7") implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7") // Core implementation("androidx.core:core-ktx:1.15.0") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") // JSON (manifest serialization) implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") // DataStore (PIN + UI settings) implementation("androidx.datastore:datastore-preferences:1.1.1") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") }