import java.util.Properties plugins { id("com.android.application") kotlin("android") id("dagger.hilt.android.plugin") // Safe Navigation id("androidx.navigation.safeargs") // OSS Licenses id("com.google.android.gms.oss-licenses-plugin") // keep at bottom kotlin("kapt") } val appID = "com.dzeio.openhealth" // Languages val locales = listOf("en", "fr") val sdkMin = 21 val sdkTarget = 33 android { signingConfigs { create("release") { try { val keystoreProperties = Properties().apply { load(rootProject.file("./keystore.properties").reader()) } if (keystoreProperties.isNotEmpty()) { storePassword = keystoreProperties["storePassword"] as String keyPassword = keystoreProperties["keyPassword"] as String keyAlias = keystoreProperties["keyAlias"] as String storeFile = file(keystoreProperties["storeFile"] as String) } } catch (_: Exception) {} } } compileSdk = sdkTarget defaultConfig { // App ID applicationId = appID // Android 5 Lollipop minSdk = sdkMin // Android 12 targetSdk = sdkTarget // Semantic Versioning versionName = "0.1.0" versionCode = 1 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" kapt { arguments { arg("room.schemaLocation", "$projectDir/schemas") } } buildConfigField( "String[]", "LOCALES", "new String[]{\"" + locales.joinToString("\",\"") + "\"}" ) resourceConfigurations += locales } buildTypes { getByName("release") { // Slimmer version isMinifyEnabled = true isDebuggable = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") signingConfig = signingConfigs.getByName("release") } getByName("debug") { proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") applicationIdSuffix = ".dev" versionNameSuffix = "-dev" isDebuggable = true // make it debuggable isRenderscriptDebuggable = true // Optimization Level renderscriptOptimLevel = 0 } } // Compile using JAVA 8 compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } // Enable View Binding and Data Binding buildFeatures { viewBinding = true dataBinding = true } namespace = appID } dependencies { // Dzeio Charts implementation(project(":charts")) // implementation(project(":CrashHandler")) implementation("com.dzeio:crashhandler:1.0.1") // Core dependencies implementation("androidx.core:core-ktx:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0-alpha01") implementation("javax.inject:javax.inject:1") implementation("com.google.android.material:material:1.8.0-beta01") implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.5.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1") // implementation("com.github.Aviortheking:crashhandler:0.2.3") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") // Settings implementation("androidx.preference:preference-ktx:1.2.0") // DataStore implementation("androidx.datastore:datastore:1.0.0") // Navigation implementation("androidx.navigation:navigation-fragment-ktx:2.5.3") implementation("androidx.navigation:navigation-ui-ktx:2.5.3") // Paging implementation("androidx.paging:paging-runtime:3.1.1") implementation("androidx.paging:paging-runtime-ktx:3.1.1") // Services implementation("androidx.work:work-runtime-ktx:2.7.1") // Tests testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.4") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") // Graph implementation("com.github.PhilJay:MPAndroidChart:v3.1.0") // Graphs test 2 implementation("com.github.HackPlan:AndroidCharts:1.0.4") // Hilt implementation("com.google.dagger:hilt-android:2.44.2") kapt("com.google.dagger:hilt-compiler:2.44.2") // Google Fit // implementation("com.google.android.gms:play-services-fitness:21.1.0") // implementation("com.google.android.gms:play-services-auth:20.4.0") // implementation("androidx.health.connect:connect-client:1.0.0-alpha08") // Samsung Health // implementation(files("libs/samsung-health-data-1.5.0.aar")) // implementation("com.google.code.gson:gson:2.9.1") // ROOM implementation("androidx.room:room-runtime:2.4.3") kapt("androidx.room:room-compiler:2.4.3") implementation("androidx.room:room-ktx:2.4.3") testImplementation("androidx.room:room-testing:2.4.3") // Futures implementation("com.google.guava:guava:31.1-jre") implementation("androidx.concurrent:concurrent-futures:1.1.0") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.6.4") // OSS Licenses implementation("com.google.android.gms:play-services-oss-licenses:17.0.0") // Open Food Fact implementation("com.squareup.retrofit2:retrofit:2.9.0") implementation("com.squareup.retrofit2:converter-gson:2.9.0") implementation("com.squareup.okhttp3:logging-interceptor:4.9.1") }