Files
ledga/app/build.gradle.kts
T
ngenohkevin 42236c88e4 v1.6.0: car expense tracking (Fuel/Service) + tappable notifications
Mark any transaction as Fuel or Car Service from the detail sheet (a tag
separate from its category). New 'Car expenses' screen (You tab) shows the
car's lifetime cost plus per-tag This Week / This Month / All Time, summed
across every SIM. DB v4->v5 adds a nullable carTag column (additive, no
rebuild).

Also: notifications now carry a tap intent, so tapping opens the app and
clears them instead of lingering until manually swiped.
2026-06-28 16:49:58 +03:00

137 lines
4.4 KiB
Kotlin

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.compose")
id("org.jetbrains.kotlin.plugin.serialization")
id("com.google.devtools.ksp")
id("com.google.dagger.hilt.android")
}
android {
namespace = "com.ledga.app"
compileSdk = 36
signingConfigs {
create("release") {
val keystoreFile = rootProject.file("keystore/ledga-release.jks")
if (keystoreFile.exists()) {
storeFile = keystoreFile
storePassword = System.getenv("KEYSTORE_PASSWORD") ?: "ledga2026"
keyAlias = System.getenv("KEY_ALIAS") ?: "ledga"
keyPassword = System.getenv("KEY_PASSWORD") ?: "ledga2026"
}
}
}
defaultConfig {
applicationId = "com.ledga.app"
minSdk = 26
targetSdk = 34
versionCode = 21
versionName = "1.6.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
signingConfig = signingConfigs.getByName("release")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
buildConfig = true
}
packaging {
resources {
excludes += setOf(
"META-INF/INDEX.LIST",
"META-INF/DEPENDENCIES",
"META-INF/LICENSE.md",
"META-INF/NOTICE.md"
)
}
}
}
dependencies {
// Compose BOM
val composeBom = platform("androidx.compose:compose-bom:2026.03.00")
implementation(composeBom)
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.ui:ui-text-google-fonts")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.material:material-icons-extended")
debugImplementation("androidx.compose.ui:ui-tooling")
// Activity & Lifecycle
implementation("androidx.activity:activity-compose:1.13.0")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0")
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.10.0")
implementation("androidx.core:core-ktx:1.16.0")
// Navigation
implementation("androidx.navigation:navigation-compose:2.9.7")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
// Room
implementation("androidx.room:room-runtime:2.8.4")
implementation("androidx.room:room-ktx:2.8.4")
ksp("androidx.room:room-compiler:2.8.4")
// Hilt
implementation("com.google.dagger:hilt-android:2.57.1")
ksp("com.google.dagger:hilt-compiler:2.57.1")
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")
// DataStore
implementation("androidx.datastore:datastore-preferences:1.2.1")
// WorkManager
implementation("androidx.work:work-runtime-ktx:2.11.1")
implementation("androidx.hilt:hilt-work:1.2.0")
ksp("androidx.hilt:hilt-compiler:1.2.0")
// Vico Charts
implementation("com.patrykandpatrick.vico:compose-m3:2.1.3")
// Google Drive Backup
implementation("com.google.android.gms:play-services-auth:21.3.0")
implementation("com.google.api-client:google-api-client-android:2.7.2")
implementation("com.google.apis:google-api-services-drive:v3-rev20241206-2.0.0")
implementation("com.google.http-client:google-http-client-gson:1.45.3")
// Splash Screen
implementation("androidx.core:core-splashscreen:1.0.1")
// Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
// Testing
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(composeBom)
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
}